我需要Matplotlib图中的x轴文本。我有:
import matplotlib.pyplot as plt
x=[1,2,3,4,5,6,7,8,9,10,11,12]
y=[5.3, 6.1, 25.5, 27.8, 31.2, 33.0, 33.0, 32.8, 28.4, 21.1, 17.5, 11.9]
plt.bar(x,y, color='g')
plt.xlabel('x')
plt.ylabel('y')
plt.title("Max Temperature for Months")
plt.legend()
plt.show()
我的输出是:
我不知道如何用文本(字符串)替换x=[ ]
列表,它给了我错误。
我想要的图表是:
答案 0 :(得分:3)
使用plt.xticks()
功能,如下所示:
import matplotlib.pyplot as plt
x=[1,2,3,4,5]
y=[1,2,3,4,5]
plt.bar(x,y, color='g')
plt.xlabel('x')
plt.ylabel('y')
生成一些标签以显示在图表上。字符串列表的长度必须与x
和y
列表的长度相同:
LABELS = ["M","w","E","R","T"]
使用以下内容绘制它们:
plt.xticks(x, LABELS)
plt.title("Max Temperature for Months")
plt.legend()
plt.show()
请参阅此处的示例:http://matplotlib.org/examples/ticks_and_spines/ticklabels_demo_rotation.html
修改:有关调整标签位置/方向/位置的信息,请参阅matplotlib api文档,并提出以下问题:matplotlib ticks position relative to axis。
编辑:添加图片: http://imgur.com/igjUGLb
修改:要获得所需的位置和方向,您会在此问题中找到一个很好的示例:Matplotlib Python Barplot: Position of xtick labels have irregular spaces between eachother。
实现:
b = plt.bar(x,y, color='g')
xticks_pos = [0.5*patch.get_width() + patch.get_xy()[0] for patch in b]
plt.xticks(xticks_pos, LABELS,rotation = 45)
给出:https://imgur.com/a/78Esz 希望有所帮助。