- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试根据传入的数据框和变量列表动态生成要在网页上显示的图表列表。 master_chart 应该有一个时间元素,然后 master_chart 上的间隔选择将影响在其他生成的图表上“突出显示”或选择的内容。然而,当我这样做时,所有其他生成的图表上的选择在彼此之间起作用,但主图表上的选择没有被其他图表注册。当我将其他图表的 x 变量更改为时间元素时,主图表上的选择起作用并改变了所有其他图表上数据点的颜色,反之亦然。但是,当我将 x 编码更改为所需值时,主图表上的任何选择都会像这样取消选择辅助图表上的所有点(好吧,我无法上传图片,因为我没有足够的声誉,但链接在这里 https://ibb.co/56LSTwW ).我希望它能在其他图表上显示那些时间的所有数据,但它似乎不起作用。我是否误解了复合牵牛星间隔选择的功能。任何想法将不胜感激。
后期编辑:编辑后,我用 seattle-weather vega 数据集重现了这个例子。我的目标是拥有一组交互式图表,其中一个图表上的选择将突出显示其他图表上的数据点。该函数返回一个包含一个图表的列表,该列表呈现在我网页上的 Jinja 模板中。我已经能够在网页上呈现许多不同类型的图表,所以我知道我的问题是基于我对 Altair 的理解。当我在具有相同 Y 轴的三个图表中的任何一个上进行选择时,它会选择所有其他图表上的点,包括 master_chart,例如 https://ibb.co/ssDwGZ6 。但是,当我在顶部图表 master_chart 上进行选择时,其他任何图表 https://ibb.co/pRwDbF4 都没有选择。这是否与其他图表的 for-loop 结构有关,还是因为主图表的 x 和 y 编码与其他图表不同?任何建议将不胜感激。
import altair as alt
import pandas as pd
from vega_datasets import data
var_dframe = data.seattle_weather()
primary_x = "precipitation"
param_list = ["precipitation", "temp_max", "temp_min", "wind"]
def make_charts(var_dframe, primary_x, param_list):
other_charts_list = []
compound_chart_list = []
the_brush = alt.selection(type='interval', resolve='global')
master_chart = alt.Chart(var_dframe).mark_point(filled=True).encode(
x= alt.X("date:T"),
y= primary_x +":Q",
color= alt.condition(the_brush, alt.value('blue'), alt.value('grey'))
).add_selection(the_brush)
for item in (param_list[1:]):
new_chart = alt.Chart(var_dframe).mark_point(
filled=True,
).encode(
x= alt.X("%s:Q" % item),
y= alt.Y("temp_max:Q"),
color = alt.condition(the_brush, alt.value('blue'), alt.value('gray'))
).add_selection(the_brush)
other_charts_list.append(new_chart)
compound_chart = master_chart
for chart in other_charts_list:
compound_chart = compound_chart & chart
compound_chart_list.append(compound_chart.to_json())
return(compound_chart_list)
最佳答案
这种奇怪的行为是由于 Vega-Lite 中的一个已知错误造成的:Interval selection on temporal data returns empty selection .解决方法是为每个图表面板添加时间编码;在这里,您可以通过在代码片段中创建的每个 new_chart
对象中添加 detail="date:T"
作为编码来实现此目的。
关于python - 具有不同 x 和 y 编码的 Altair 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56872811/
给定一个交互式面积图,如下所示: import altair as alt from vega_datasets import data source = data.iowa_electricity(
有一个散点图,我知道您在比例尺上使用绑定(bind)进行平移并使用滚轮进行缩放,这很棒。但是,一旦缩放,就需要一种方法来进行选择间隔,而无需进一步缩放效果。例如,需要一种通过 shift 键暂停或退出
[![图表显示没有正确格式的数字][1]][1] 我需要格式化这些条上的标签,以便将它们四舍五入到最接近的整数。我有以下代码: def chart_tender_response_times(data
这是对 Altair: Sorting faceted “text” chart not reflecting expectation 的跟进查询.我用一列额外的列修改了数据框。我的目标是对“标记”列
我正在尝试按照 Multi-Line Tooltip example 的方式创建一个图表,但我想格式化正在打印的字符串以在末尾添加一些文本。我正在尝试修改这部分: # Draw text labels
我正在尝试在 VL/Altair 中制作如下图表: 在本例中,X 轴标签的功能类似于 VL headers据我所知。在 VL/Altair 中,标题会自动设置在每个子图的顶部(例如, this cha
我有一个数据框,我想根据下拉菜单对其进行子选择。所以给定以下代码: import pandas as pd import altair as alt from vega_datasets import
这是取自 Altair documentation 的代码关于配色方案。 alt.Chart(iris).mark_point().encode( x='petalWidth', y=
如果可能,我想使用 altair 创建一个水平条形图,其中包含水平连接并与条形对齐的表格中的一列或多列。我正在粘贴一个快速 Excel 图表的示例,以大致了解我想要什么。 以下示例来自您的网站(代码和
我有一个包含一堆分箱数据的直方图,我想知道如果我从直方图中选择一个条形图是否可以生成一个表,它会显示原始数据框中的数据。 最佳答案 您可以使用 mark_text 创建表格的外观。这是 an exam
我想绘制具有多个 y 轴的平行坐标图。我已经在 Vega-Lite 中找到了如何做到这一点 here但我还没有找到使用 Altair 的方法,只有一个 very simple example其中所有
对于下面的示例,我想使用绿色配色方案进行导出,使用红色进行导入。当我单独创建图表时,一切都很好,它们得到了我分配给它们的配色方案。然而,当我连接图表时,他们都得到了红色方案。 import panda
当使用日期字段对颜色进行编码时,色标范围不会跨越整个配色方案渐变范围。例如,这个: alt.Chart(mydf).mark_point().encode( x='date:T', y
有没有办法让 Python Altair 绘图显示两个偏差标准?使用 mark_errorbar(extent='stdev') 仅显示一个标准偏差。 # Only shows one standar
我正在尝试在 Altair 上绘制以下内容:x = 每日时间戳y = 记录数,因为数据是名义上的而非定量的 当我尝试按月或季度汇总 x 时,是否可以将 y 显示为每天的平均记录数而不是总和? char
这个 question解决如何使用 mark_text() 访问和显示 R2 值 我对访问和显示系数感兴趣。将 rSquared 替换为 coef 会产生截距和斜率的扁平数组,如 documentat
无法为以下直方图中的分箱值着色。我打算对 x 轴上小于 50 的所有条进行着色(信用度)。 Altair 是如何做到的? base = alt.Chart(X_train) histogram = b
当我绘制由两组线组成的分层图表时,一层中的工具提示不显示。这也发生在 VL 编辑器中。任何关于为什么会发生这种情况的见解将不胜感激。 这是一个可重现的例子来演示这个问题(实际上我在第一层有更多行):
我可以修改经典Simple Scatter Plot with Tooltips , 为标记添加不透明度,但我想图例颜色保持 100% 不透明。在我尝试制作的图表中,我有一个包含数万行的 df。 im
我希望使用 altair 创建一个类似于附图的图,该图是使用 matplotlib 绘制的。基本上,一条绘制平均值的线和一个置信区间。 我的数据框看起来像这样。 dfr = pd.DataFrame(
我是一名优秀的程序员,十分优秀!