gpt4 book ai didi

python - Matplotlib:没有字符串和轴反转的分类图

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:56 24 4
gpt4 key购买 nike

让我们看一下这段 Python 代码片段:

import matplotlib.pyplot as plt

x = [5,4,3,2,1,0]
x_strings = ['5','4','3','2','1','0']
y = [0,1,2,3,4,5]

plt.figure()

plt.subplot(311)
plt.plot(x, y, marker='o')

plt.subplot(312)
plt.plot(x_strings, y, marker='^', color='red')

plt.subplot(313)
plt.plot(x, y, marker='^', color='red')
plt.gca().invert_xaxis()

plt.show()

这会产生这三个子图:

enter image description here

在顶部子图中,x 值会自动按递增顺序排序,无论它们在给定列表中的顺序如何。如果我想完全按照给定的 x 顺序绘制 xy 的关系,那么我有两种可能性:

1) 将 x 值转换为字符串并绘制分类图——这是中间的子图。

2) 反转 x 轴——这是底部的子图。

问题:是否有其他方法可以进行分类图,但无需将数字转换为字符串且无需反转 x 轴?

附加组件:

如果我使用set_xticklabels(list),那么由于某种不清楚的原因,列表中的第一个元素将被跳过(无论我引用x还是x_strings list),结果图也很奇怪:

import matplotlib.pyplot as plt

x = [5,4,3,2,1,0]
x_strings = ['5','4','3','2','1','0']
y = [0,1,2,3,4,5]

fig, ax = plt.subplots()

ax.set_xticklabels(x)
ax.plot(x, y, marker='^', color='red')

plt.show()

enter image description here

最佳答案

两种尝试的解决方案似乎都是可行的。或者,您始终可以通过绘制整数并根据您的喜好设置刻度标签来模拟分类图。

import matplotlib.pyplot as plt

x = [5,4,3,2,1,0]
y = [0,1,2,3,4,5]

fig, ax = plt.subplots()

ax.plot(range(len(y)), y, marker='^', color='red')

ax.set_xticks(range(len(y)))
ax.set_xticklabels(x)

plt.show()

enter image description here

关于python - Matplotlib:没有字符串和轴反转的分类图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53467797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com