Python X轴上的奇怪年份值
如果我使用织女星数据集“灾难”并制作一个简单的图表,我会得到一些奇怪的年份值 在Altair中,代码是:Python X轴上的奇怪年份值,python,vega-lite,altair,Python,Vega Lite,Altair,如果我使用织女星数据集“灾难”并制作一个简单的图表,我会得到一些奇怪的年份值 在Altair中,代码是: 将altair导入为alt 从vega_数据集导入数据 dis=data.diseases() alt.Chart(dis).标记条().编码( x=alt.x(‘年份:T’), y=alt.y(“死亡”), color='Entity' ) 年整数不是标准时间值 在Vega Lite中,您可以向数据块添加“格式”:{“解析”:{“年”:“日期:'%Y''}},以指定字段“年”的自定义日
将altair导入为alt
从vega_数据集导入数据
dis=data.diseases()
alt.Chart(dis).标记条().编码(
x=alt.x(‘年份:T’),
y=alt.y(“死亡”),
color='Entity'
)
年整数不是标准时间值 在Vega Lite中,您可以向数据块添加
“格式”:{“解析”:{“年”:“日期:'%Y''}}
,以指定字段“年”
的自定义日期解析格式
在Altair中,您可以类似地指定*数据类(例如)的
格式属性。添加到@kanitw的答案中:当您将整数转换为日期时间时,该整数被视为自零日期起的纳秒。通过执行以下操作,您可以在pandas中看到这一点:
>>> pd.to_datetime(dis.Year)
0 1970-01-01 00:00:00.000001900
1 1970-01-01 00:00:00.000001901
2 1970-01-01 00:00:00.000001902
3 1970-01-01 00:00:00.000001903
4 1970-01-01 00:00:00.000001905
Name: Year, dtype: datetime64[ns]
import altair as alt
from vega_datasets import data
dis=data.disasters(parse_dates=['Year'])
alt.Chart(dis).mark_bar().encode(
x=alt.X('year(Year):T'),
y=alt.Y('Deaths'),
color='Entity'
)
Altair/Vega Lite使用类似的约定
如果要在加载数据时将年份解析为日期,然后使用Altair绘制年份,可以执行以下操作:
>>> pd.to_datetime(dis.Year)
0 1970-01-01 00:00:00.000001900
1 1970-01-01 00:00:00.000001901
2 1970-01-01 00:00:00.000001902
3 1970-01-01 00:00:00.000001903
4 1970-01-01 00:00:00.000001905
Name: Year, dtype: datetime64[ns]
import altair as alt
from vega_datasets import data
dis=data.disasters(parse_dates=['Year'])
alt.Chart(dis).mark_bar().encode(
x=alt.X('year(Year):T'),
y=alt.Y('Deaths'),
color='Entity'
)
首先,我们通过将适当的pandas.read_csv
参数传递给加载函数,将year列解析为日期,然后使用year
仅从完整的日期时间中提取年份
如果您是从CSV URL而不是熊猫数据框打印数据,Vega Lite足够智能,可以根据您在图表中指定的编码解析CSV文件,这意味着以下内容将给出相同的结果:
dis=data.disasters.url
alt.Chart(dis).mark_bar().encode(
x=alt.X('year(Year):T'),
y=alt.Y('Deaths:Q'),
color='Entity:N'
)
谢谢你,杰克。感谢您的回答。谢谢@kanitw。现在完全有道理了。