我创建了一个包含 5 个不同时间点的折线图,每个时间点包含 6 个不同的值。为了避免误差线重叠,我为每个时间点的每个值创建了一个偏移量,然后添加了偏移量。
现在时间点的名称为浮点数(1-5),但是我希望时间点具有诸如“before”、“after1”、“after2”、...
之类的标签我尝试分配一个包含原始浮点数作为键和字符串作为值的字典(例如 {'before': 1}。
我不知道如何将字典值包含为 xticks。已经尝试过 set_xticks(name_dict),但这不起作用。 Xlabel 用于整体轴名称。这里有地图选项吗?有任何想法吗?谢谢!
假设你的字典是这样的:
name_dict = {'before': 1, 'after1': 2, 'after2': 3, 'after3': 3, 'after4': 4}
set_xticks
指定x个刻度的位置
ax.set_xticks(name_dict.values())
set_xticklabels
在这些位置显示标签
ax.set_xticklabels(name_dict.keys())
如果字典中的值顺序相同,则可以使用
set_xticks(name_dict.values)
。如果它们的顺序错误,您可以使用简单的 for
循环对它们重新排序。
从
matplotlib v3.8
开始, ax.set_xticks() 需要一个类似列表的内容,并且 ax.set_xticks(dic.keys()) 会抛出:
ValueError: 'locs' must be 1D with shape (N,), but your input has shape ()
。
更新的解决方案是
dic= {'before': 1, 'after1': 2, 'after2': 3, 'after3': 3, 'after4': 4}
ax.set_xticks(list(dic.values()))
ax.set_xticklabels(dic.keys())