我需要针对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()
Run Code Online (Sandbox Code Playgroud)
前三个点(1,5),(2,10),(10,6)非常接近。我希望x轴只有5个刻度线[1,2,10,100,100]并且它们均匀地分散在x轴上。我该如何实现?非常感谢。
作为记录,我认为对于图形来说这是一个糟糕的设计选择。定期间隔非常规(无论是线性还是对数)的滴答声会使读者感到困惑。
好吧,您只需要对图进行绘制,0, 1, 2, 3, ...
然后使用以下命令将刻度设置x
为相同位置的值plt.xticks()
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()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3309 次 |
最近记录: |