作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
fig.canvas.draw()
labels = [item.get_text() for item in ax.get_xticklabels()]
labels[0] = 'Inbox'
labels[1] = 'Sent'
labels[2] = 'Important'
labels[3] = 'Starred'
labels[4] = 'Unread'
ax.set_xticklabels(labels)
plt.plot([1500,1200,900,600,300])
plt.show()
如您所见,我只想在 x 轴上有 5 个标签。然而,当我运行该图时,它会生成 8 个可用的标签槽。前 5 个是我想要的标签,但后 3 个是空白的。如何只设置我想要的 5 个标签?
最佳答案
这是因为绘图不仅为您指定的点绘制点,还为其他点绘制点。如果不更改轴标签,问题就很明显:
如果您希望数据有 5 个刻度,那么您还需要使用 set_xticks()
设置它们的位置 - 如果您不这样做,那么您只需替换已经存在的刻度线,这不是您想要的。
但这不是重点,这种数据不应该用这样的线来表示,你应该使用条形图:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
x_locs = np.arange(5)
width = 0.9
email_labels = ["Inbox", "Sent", "Important", "Starred", "Unread"]
email_volumes = [1500, 1200, 900, 600, 300]
ax.bar(x_locs-width/2.0, email_volumes, width)
ax.set_xticks(x_locs)
ax.set_xticklabels(email_labels)
plt.show()
关于python - 如何让x轴标签适合图表的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28545302/
我是一名优秀的程序员,十分优秀!