【发布时间】:2021-07-17 11:02:27
【问题描述】:
我正在用 pandas.DataFrame 中的数据绘制条形图。我的代码如下
import pandas as pd
import matplotlib.pyplot as plot
from datetime import datetime
start_year = 2000
date_range = [ i + start_year for i in range(datetime.today().year - start_year)]
data = pd.DataFrame([
[2015, 100], [2016, 110], [2017, 105], [2018, 109], [2019, 110], [2020, 116], [2021, 113]
], columns=["year", "value"])
chart = data.plot.bar(
x="year",
y="value",
# xticks=date_range # ,
xlim=[date_range[0], date_range[-1]]
)
plot.show()
结果图是:
我必须绘制其中的几个,其中的数据可能从 2000 年开始并在 2010 年结束,然后是另一个数据框,其中包含从 2010 年开始并在本年度结束的数据。
为了使这些图在视觉上具有可比性,我希望所有人都从同一年开始,在本例中为 2000 年,并在当前年结束。如果给定年份没有值,则可以使用 0。在本例中,例如,我使用了 2000 年,但也可以从 2005、2006 或 2010 年开始。
我怎样才能实现我正在寻找的东西?我尝试设置 xticks 和 xlim,但使用 xticks,数据会全部偏向一侧,就好像两者之间有数千个值一样。这很奇怪,因为我使用的是 int 值。
谢谢
【问题讨论】:
标签: python-3.x pandas matplotlib bar-chart