如何使刻度线均匀间隔,尽管它们的值有所不同?

2024-03-29 06:51:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图生成一个x轴是一个几何序列,而y轴是一个介于0.0和1.0之间的数字的绘图。我的代码如下:

form matplotlib import pyplot as plt
plt.xticks(X)
plt.plot(X,Y)
plt.show()

产生了这样的情节:

My plot

如您所见,我正在显式地将x轴记号设置为属于几何序列的记号。

我的问题是:尽管x-ticks的值很小,但是序列的初始项很小,而且拥挤在一起,所以它是否可能使x-ticks的间距均匀。有点像对数标度,如果处理一个基数的幂,这是理想的,但对于一个几何序列,我想不是这样。


Tags: 代码importform绘图plotmatplotlibasshow
1条回答
网友
1楼 · 发布于 2024-03-29 06:51:02

可以通过将变量绘制为参数化曲线的“自然”变量的函数来完成此操作。例如:

n = 12
a = np.arange(n)
x = 2**a
y = np.random.rand(n)

fig = plt.figure(1, figsize=(7,7))
ax1  = fig.add_subplot(211)
ax2  = fig.add_subplot(212)

ax1.plot(x,y)
ax1.xaxis.set_ticks(x)

ax2.plot(a, y) #we plot y as a function of a, which parametrizes x
ax2.xaxis.set_ticks(a) #set the ticks to be a
ax2.xaxis.set_ticklabels(x) # change the ticks' names to x

产生:

enter image description here

相关问题 更多 >