matplotlib.pyplot 在相等范围内绘制 x 轴刻度
matplotlib.pyplot plot x-axis ticks in equal range
我需要针对一系列 x 值绘制一系列 y 值。 x 值在很大范围内变化。 pyplot 似乎使用线性 x 轴。所以下面的代码给了我一个不好的数字。
def bad_plot():
x=[1,2,10,100,1000]
y=[5,10,6,7,9]
plt.plot(x,y,'rs')
plt.show()
前三个点 (1,5), (2,10), (10,6) 非常接近。我希望 x 轴只有 5 个刻度 [1,2,10,100,100],并且它们 均匀分布在 x 轴 上。我怎样才能做到这一点?非常感谢。
郑重声明,我认为这是一个糟糕的图形设计选择。 non-regular(无论是线性的还是对数的)有规律的时间间隔会让 reader.
感到困惑
好吧,你只需要做的就是针对 0, 1, 2, 3, ...
进行绘图,然后使用 plt.xticks()
在同一位置将刻度设置为 x
的值
import numpy as np
import matplotlib.pyplot as plt
x=[1,2,10,100,1000]
y=[5,10,6,7,9]
N = len(x)
x2 = np.arange(N)
plt.plot(x2, y)
plt.xticks(x2, x)
plt.show()
我需要针对一系列 x 值绘制一系列 y 值。 x 值在很大范围内变化。 pyplot 似乎使用线性 x 轴。所以下面的代码给了我一个不好的数字。
def bad_plot():
x=[1,2,10,100,1000]
y=[5,10,6,7,9]
plt.plot(x,y,'rs')
plt.show()
前三个点 (1,5), (2,10), (10,6) 非常接近。我希望 x 轴只有 5 个刻度 [1,2,10,100,100],并且它们 均匀分布在 x 轴 上。我怎样才能做到这一点?非常感谢。
郑重声明,我认为这是一个糟糕的图形设计选择。 non-regular(无论是线性的还是对数的)有规律的时间间隔会让 reader.
感到困惑好吧,你只需要做的就是针对 0, 1, 2, 3, ...
进行绘图,然后使用 plt.xticks()
x
的值
import numpy as np
import matplotlib.pyplot as plt
x=[1,2,10,100,1000]
y=[5,10,6,7,9]
N = len(x)
x2 = np.arange(N)
plt.plot(x2, y)
plt.xticks(x2, x)
plt.show()