我正在尝试使用两个系列从数据框中绘制堆积条形图。第二个系列的数据量非常少,但我预计它仍会在图表中显示为一个小的栗色线。当我将图表保存为png文件时,前两个栏不显示第二个“Drivers”数据集。然而后来的酒吧都显示出来。下面是我使用的代码以及图表的快照。您可以看到前两个栏中没有显示“司机”系列?我该如何解决这个问题?
代码:
df_trend = pd.read_csv('test_log.csv', index_col=0, skiprows=0)
df_trend.index = (pd.to_datetime(df_trend.index)).strftime("%m/%d %H:00")
fig = plt.figure()
rcParams['figure.figsize'] = df_trend.shape[0], 4
ax = fig.add_subplot(111)
y = df_trend.tail(24).plot.bar(stacked=True, color=['skyblue', 'maroon'], edgecolor="none", width=0.2)
y.legend(loc="lower left", fontsize=9)
plt.tick_params(axis='both', which='both', labelsize=9)
fig.autofmt_xdate()
plt.title('Cars vs Drivers', fontsize=10, y=1.05)
plt.savefig('cars_drivers.png', bbox_inches='tight')
plt.close()
使用的DataFrame:
Cars Drivers
09/27 09:00 243000 300
09/28 09:00 243970 190
09/28 13:00 267900 290
09/28 17:00 254770 180
09/28 18:00 250860 290
答案 0 :(得分:1)
我认为你可以做的事情,但我认为你想要#2:
plt.savefig('cars_drivers.png',
bbox_inches='tight',dpi=1000)
。ylim
范围:plt.ylim([200e3, 300e3])
。更改驱动程序的比例并重命名列以显示在图例中:
df_trend['Drivers'] = 10*df_trend['Drivers']
df_trend = df_trend.rename(columns={'Drivers': 'Drivers x 10'})