我试图生成一个x轴是一个几何序列,而y轴是一个介于0.0和1.0之间的数字的绘图。我的代码如下:
form matplotlib import pyplot as plt
plt.xticks(X)
plt.plot(X,Y)
plt.show()
产生了这样的情节:
如您所见,我正在显式地将x轴记号设置为属于几何序列的记号。
我的问题是:尽管x-ticks的值很小,但是序列的初始项很小,而且拥挤在一起,所以它是否可能使x-ticks的间距均匀。有点像对数标度,如果处理一个基数的幂,这是理想的,但对于一个几何序列,我想不是这样。
最佳答案
你可以通过将变量绘制成参数化曲线的“自然”变量的函数来实现。例如:
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
产生:
关于python - 如何使xticks均匀分布而不管其值(value)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39540730/