Pandas Seaborn绘图条时间序列x轴:如何显示每个条的值
当图形(条形图)的时间序列为X轴时,如何显示每个条形图的值: 我有一个数据帧df_final_seaborn: 并使用以下代码绘制条形图:Pandas Seaborn绘图条时间序列x轴:如何显示每个条的值,pandas,matplotlib,seaborn,Pandas,Matplotlib,Seaborn,当图形(条形图)的时间序列为X轴时,如何显示每个条形图的值: 我有一个数据帧df_final_seaborn: 并使用以下代码绘制条形图: sns.set(rc={'figure.figsize':(30,15)},palette=['#F70A0A','#2A930C','#930C85'], font_scale=1.7) # pour les axes ax = sns.barplot(x=df_final_seaborn.index,y='Isan\'ny olona',data=d
sns.set(rc={'figure.figsize':(30,15)},palette=['#F70A0A','#2A930C','#930C85'], font_scale=1.7)
# pour les axes
ax = sns.barplot(x=df_final_seaborn.index,y='Isan\'ny olona',data=df_final_seaborn,hue='Covid-19 Madagascar')
sns.set_style("darkgrid" , {"ytick.major.size": 10 , "ytick.minor.size": 2 , 'grid.linestyle': '--'})
plt.xticks(rotation=90)
plt.xlabel('Daty', fontsize = 20)
plt.ylabel('Isan\'ny olona', fontsize = 20)
plt.minorticks_on()
plt.legend(loc='upper left')
plt.grid(b=True, which='minor', color='#999999', linestyle='-', alpha=0.2 , axis='y')
ax.xaxis.set_major_formatter(plt.FixedFormatter(df_sea.index.to_series().dt.strftime("%Y-%m-%d")))
plt.show()
结果是:
我的问题是如何显示条形图的每个值:
我在这里也遇到了同样的问题,添加了下面的代码
for index , row in df_final_seaborn.iterrows():
ax.text(row.name,row['Isan\'ny olona'], round(row['Isan\'ny olona'],0), color='black', ha="center")
plt.show()
Out : TypeError: float() argument must be a string or a number, not 'Timestamp'
当我把
for index , row in df_final_seaborn.iterrows():
print(index)
print(row)
结果将是:
另一种解决方案是通过matplotlib,如下所示:
在此之前添加:plt.show()
输出:
TypeError Traceback (most recent call last)
<ipython-input-127-717d236faadf> in <module>
12 ax.xaxis.set_major_formatter(plt.FixedFormatter(df_sea.index.to_series().dt.strftime("%Y-%m-%d")))
13 for i , v in enumerate (df_final_seaborn):
---> 14 plt.text(df_final_seaborn.iloc[i], v + 0.01, str(v))
15 # print(i)
16 # print(v)
TypeError: can only concatenate str (not "float") to str
TypeError回溯(最近一次调用)
在里面
12 ax.xaxis.set_major_格式化程序(plt.FixedFormatter(df_sea.index.to_series().dt.strftime(“%Y-%m-%d”))
13对于枚举中的i、v(df_final_seaborn):
--->14 plt.文本(df_final_seaborn.iloc[i],v+0.01,str(v))
15#打印(一)
16#打印(v)
TypeError:只能将str(而不是“float”)连接到str
有什么想法吗?您不应该在数据帧上迭代,因为行和条之间的对应关系无法保证。相反,在条形图上迭代:
sns.set(rc={'figure.figsize':(30,15)},palette=['#F70A0A','#2A930C','#930C85'], font_scale=1.7)
# pour les axes
ax = sns.barplot(x=df_final_seaborn.index,y='Isan\'ny olona',data=df_final_seaborn,hue='Covid-19 Madagascar')
sns.set_style("darkgrid" , {"ytick.major.size": 10 , "ytick.minor.size": 2 , 'grid.linestyle': '--'})
plt.xticks(rotation=90)
for patch in ax.patches:
x, width, height = patch.get_x(), patch.get_width(), patch.get_height()
color = patch.get_facecolor()
# ignore 0 and nan values
if height is None or height==0: continue
ax.text( x+width/2, height+0.1, f'{height}',ha='center',color=color)
输出:
非常感谢
TypeError Traceback (most recent call last)
<ipython-input-127-717d236faadf> in <module>
12 ax.xaxis.set_major_formatter(plt.FixedFormatter(df_sea.index.to_series().dt.strftime("%Y-%m-%d")))
13 for i , v in enumerate (df_final_seaborn):
---> 14 plt.text(df_final_seaborn.iloc[i], v + 0.01, str(v))
15 # print(i)
16 # print(v)
TypeError: can only concatenate str (not "float") to str
sns.set(rc={'figure.figsize':(30,15)},palette=['#F70A0A','#2A930C','#930C85'], font_scale=1.7)
# pour les axes
ax = sns.barplot(x=df_final_seaborn.index,y='Isan\'ny olona',data=df_final_seaborn,hue='Covid-19 Madagascar')
sns.set_style("darkgrid" , {"ytick.major.size": 10 , "ytick.minor.size": 2 , 'grid.linestyle': '--'})
plt.xticks(rotation=90)
for patch in ax.patches:
x, width, height = patch.get_x(), patch.get_width(), patch.get_height()
color = patch.get_facecolor()
# ignore 0 and nan values
if height is None or height==0: continue
ax.text( x+width/2, height+0.1, f'{height}',ha='center',color=color)