【问题标题】:Show each x-value on the plot在图上显示每个 x 值
【发布时间】:2021-03-20 19:13:34
【问题描述】:

所以我有这两个字典 A 和 B。我想绘制两者以相互比较,我在这里做了。但我想确保在 x 轴上显示每个值,即显示字典的所有键。我该怎么做?

【问题讨论】:

  • 所有键都显示在图中-如果两个字典中的任何一个中有条目,它将被绘制出来。你到底有什么不同的期望?另外:不要将代码/数据作为图像发布。将该信息作为文本发布。
  • 看看,x 轴的值是如何以 20 为间隔的?我想删除它,而是显示字典中的确切键,我的意思是,我希望为每个条显示年份。

标签: python pandas matplotlib bar-chart


【解决方案1】:

如果您标记每个条形位置,这将相当繁忙。你确定你要这么做吗?收集所有字典键并将它们绘制为 x-ticks 并不复杂,但您可能会对结果感到失望:

from matplotlib import pyplot as plt

A = {1: 2, 3: 4, 8: 6, 10: 8}
B = {1: 23, 4: 6, 10: 9}

fig, ax = plt.subplots()

ax.bar(A.keys(), A.values(), width=0.3, align="edge", label="male")
ax.bar(B.keys(), B.values(), width=-0.3, align="edge", label="female")

#collect all dictionary keys
all_keys=set(list(A.keys()) + list(B.keys()))

#set ticks where dictionary keys exist and rotate them because of space problems
#plt.xticks(list(all_keys), rotation=90)
#or if you want to use the ax object instead
ax.set_xticks(list(all_keys))
ax.tick_params(axis="x", labelrotation=90)

ax.legend()
plt.show()

示例输出

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    相关资源
    最近更新 更多