我有一个称为for_plot
的日期框架,并且我正在使用以下代码段制作条形图:
import matlplotlib.pyplot as plt
f, ax = plt.subplots(1,1,figsize=(10,8))
x_1 = for_plot['res_code'] - 0.2
x_2 = for_plot['res_code']
pre = for_plot['n_indnota_pre']
post = for_plot['n_indnota_post']
ax.bar(x_1,pre, width = 0.2, color = 'red')
ax.bar(x_2,post, width = 0.2, color = 'green')
ax.set_xticks([0.9,1.9,2.9])
ax.set_xticklabels(['GEN','ST','SC'])
ax.legend(['pre_nota', 'post_nota'],loc = 1)
ax.xlabel('Constituency Type')
ax.ylabel('No of Independent Candidates')
ax.title('Average No Of Independent Candidates by Constituency Type')
plt.show()
我确实了解如何使用matplotlib,但是在细微差别上我有几个问题:
f
有什么作用?如摘要所示,f
和ax
代表什么? ax.xlabel('Constituency Type')
添加轴标签和图表标题(如代码段的最后4行),但在绘制其他图形时,如果我在第一行中不调用subplot()
并使用plt.xlabel('Constituency Type')
,它绝对正常。为什么会这样表现?我收到以下错误:
AttributeError: 'AxesSubplot' object has no attribute 'xlabel'
编辑1:
f.xlabel('Constituency Type')
f.ylabel('No of Independent Candidates')
f.title('Average No Of Independent Candidates by Constituency Type')
也不起作用。
AttributeError:'Figure' object has no attribute 'xlabel'
希望以下答案会有所帮助。
[f
表示Figure
对象,它是所有绘图元素的顶级容器,ax
是对象或Axes
对象的数组(在您的情况下,是单个对象)
您可以使用下面的代码来设置子图的标签和标题:
ax.set_xlabel('common xlabel')
ax.set_ylabel('common ylabel')
ax.set_title('ax title')