【发布时间】:2023-03-26 15:20:01
【问题描述】:
我有这段代码,我正在尝试制作图表。列表中的所有值都是正确的。但是,我在 x 轴上有问题。首先,前两个刻度之间存在间隙。我在他们的网站上阅读了所有 matplotlib,但找不到任何对这个问题有用的东西。我对 xticks 功能感到困惑。 This is my graph
plt.bar(Valloc1,[diabete[w] for w in sorted(diabete.keys())], width=0.2,)
plt.bar(Valloc2,[not_diabete[w] for w in sorted(not_diabete.keys())], width=0.1, )
plt.xticks(all_years, rotation = '65')
plt.legend(['Diabete','Not-Diabete'])
plt.xlabel('Years')
plt.ylabel('# of patients')
plt.legend()
plt.show()
我试过这条线,但一切都变得更糟了。
plt.xticks(range(all_years),all_years, rotation = '65')
我还希望旁边的两个条不重叠。像这样 : Bars side-by-side
我的变量是:
Valloc1 = [i for i in range(52)]
diabete = {{1967: 5, 1986: 13, 1985: 9, 1996: 5, 1984: 10, 1987: 6, 1991: 8...}
【问题讨论】:
-
将
xticks设置为连续数值,将实际年份设置为标签:plt.xticks([i for i in range(len(all_years))], all_years, rotation = '65')。 -
如果您希望条形图并排,您还必须在
bar图中指定x值,并在第二个bar命令中将所有x值移动一个常数。这意味着,事先定义您的xtick位置(最好使用 numpy),制作两个图,然后调整标签。 -
是的,第一个效果很好!谢谢,但我无法理解第二个。你能再解释一下吗?
-
要写一个实际的答案,我需要知道你的变量是什么。 Minimal, Complete, and Verifiable example 真的很有帮助。至少我需要知道
Valloc1和Valloc2是什么。
标签: python matplotlib bar-chart