我正在尝试创建一个条形图,其中一个X轴刻度(日期)上有两个条形,表示两组数据。但是,我无法使它跨越图形到其他x轴刻度
这是我的密码:
simsubs = pd.read_csv('simsubs.csv')
fig, axs = plt.subplots(4, sharex=True, figsize=(11,9))
bar_width = 0.35
x = simsubs.Date
axs[3].bar(x, simsubs['CPS1 Deletes'], width=bar_width, zorder=2, label='Deletes', color='#A31214')
axs[3].bar(bar_width, simsubs['CPS1 Total'], width=bar_width, zorder=2, label='Deletes', color='blue')
plt.xticks(rotation=45)
plt.show()
simsubs.Date
指向我希望沿X轴绘制的CSV中的日期,但这是我的代码生成的img:
提前感谢您的帮助。一般来说,我对社区和python编码都是新手,如果我的术语或帖子可能令人困惑,我深表歉意
您需要以相同的比例创建条形图。一种简单的方法是创建x值,只需对数据进行计数并对其进行适当的偏移。如果需要,可以使用
set_xticklabels
标记x轴如果对
bar
的两个调用都使用相同的zorder
和label
,那么如果这些是您正在绘制的唯一数据,则会破坏它们的预期用途或者,您可以使用以下命令:
这里的x值是固定的,即所有数据都绘制在
x = bar_width = 0.35
上。您应该将条形图宽度更改为x+条形图宽度(即第二个条形图的x位置由第一个条形图宽度偏移),因此看起来如下所示:编辑:
由于您的x值是时间戳,因此我通过首先将这些时间戳值更改为DateTime对象来实现您想要的功能,如下所示:
然后应用必须调整的偏移量,如下所示:
这应该起作用,因为您的X值是均匀分布的(相隔7天),因此我建议
offset = 3.5
和units = 'days'
。在第二个条形图中将此x_偏移用作x值我已经尝试过将这些DateTime对象重置为时间戳(如果日期分布不均匀,使用时间戳会更好),但绘图对我来说总是一团糟
相关问题 更多 >
编程相关推荐