[英]Renaming X-Axis Labels when using Matplotlib and Pandas
我在 iPython Notebooks 上运行我的代码,在 Macbook Pro Yosemite 10.10.4 上
我有一个 CSV 文件,我正在尝试使用 Python 读取该文件,并希望提供图表。 我面临的问题是重命名 X 轴标签。
本质上,该图表试图绘制不同类型审计违规的计数,但对所述违规的描述非常长。 例如:
虽然没有这些冗长的原因,但我想将 X 轴标签重命名为数字或字母,以便图表读起来有点像这样:
这是我使用的代码,除了标签名称,我对结果很满意。
%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import pylab as pl
pd.set_option('display.mpl_style', 'default')
pd.set_option('display.width', 5000)
pd.set_option('display.max_columns', 60)
plt.rcParams['figure.figsize'] = (15, 5)
fixed_data = pd.read_csv('audit-rep.csv',sep=',',encoding='latin1',index_col='Index', parse_dates=['Report Date'],dayfirst=False)
viol_counts = data['Audit Flag'].value_counts()
viol_counts[:10]
viol_counts[:10].plot(kind='bar')
我尝试使用下面的代码重命名 x 轴标签。
viol_counts.set_ylabel('No. of Violations')
viol_counts.set_title('Audit Results')
viol_counts.set_xticks(ind+width)
viol_counts.set_xticklabels( ('A', 'B','C') )
这是我在使用上述代码时遇到的错误。
AttributeError: 'Series' 对象没有属性 'set_ylabel'
我遇到了一些与此问题相关的其他帖子,但没有看到专门解决单个标签重命名的帖子。 不过这并不是很重要,我只是想学习使用python,实际工作已经在excel中完成了。
如果您将绘图Axes
对象分配给一个变量名称(这里我称之为viol_plot
),那么您可以对该Axes
对象执行操作(您当前正在尝试在Series
上设置标签和刻度,而不是在绘图上):
viol_plot = viol_counts[:10].plot(kind='bar')
viol_plot.set_ylabel('No. of Violations')
viol_plot.set_title('Audit Results')
viol_plot.set_xticks(ind+width)
viol_plot.set_xticklabels( ('A', 'B','C') )
set_ylabel、set_title 等方法用于绘图对象。 一种选择是使用子图:
figure, ax = pl.subplots(1,1)
#note the ax option.
viol_counts[:10].plot(kind='bar', ax=ax)
ax.set_ylabel('No. of Violations')
ax.set_title('Audit Results')
ax.set_xticks(ind+width)
ax.set_xticklabels( ('A', 'B','C') )
或者,您可以只绘制和使用不同的函数。 一个缺点是我不知道如何在这种情况下设置 xticklabels:
viol_counts[:10].plot(kind='bar')
#note names of functions are slightly different
pl.ylabel('No. of Violations')
pl.title('Audit Results')
pl.xticks(ind+width)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.