牵牛星不会在源为Pandas数据时绘图

2024-04-16 08:57:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我不能用Altair将一个简单的熊猫数据框绘制成面积图。关键是,如果我使用Vega(“source=data.iowa\u electricy()”)导入非常相同的数据帧,该图表就会工作

source = {
    'year': ['2001-01-01', '2002-01-01'],
    'source': ['Fossil Fuels', 'Nuclear Energy'],
    'net_generation': [35361, 35991]
}
source = pd.DataFrame(source) ### this DF doesn't work

chart = alt.Chart(source).mark_area(opacity=0.3).encode(
    x="year",
    y=alt.Y("net_generation:Q", stack=None),
    color=f"source:N"
)

如果我将上面的“source”更改为“source=data.iowa_electronic()”(,其中包含非常相同的数据),图表运行得非常好

我错过了什么

PS:仅使用字符串作为标签(不带日期)也会发生同样的情况


Tags: 数据sourcedatanet图表绘制altyear
1条回答
网友
1楼 · 发布于 2024-04-16 08:57:12

数据不完全相同:字典中每种颜色只有一个条目,而爱荷华电力数据集中每种颜色有许多条目

正如我在回答你的previous question时提到的,每种颜色有一个点的面积图将不会显示任何内容,因为一个点下的面积宽度为零,因此是不可见的

您可以通过向每个组添加多个点来确认这一点:

source = {
    'year': ['2001-01-01', '2001-01-02', '2001-01-01', '2001-01-02'],
    'source': ['Fossil Fuels', 'Fossil Fuels', 'Nuclear Energy', 'Nuclear Energy'],
    'net_generation': [100, 500, 200, 400]
}
source = pd.DataFrame(source)

chart = alt.Chart(source).mark_area(opacity=0.3).encode(
    x="year:T",
    y=alt.Y("net_generation:Q", stack=None),
    color="source:N"
)

enter image description here

相关问题 更多 >