Python 如何使用Matplotlib绘制具有非线性x轴刻度的曲线?

Python 如何使用Matplotlib绘制具有非线性x轴刻度的曲线?,python,matplotlib,plot,curve,non-linear,Python,Matplotlib,Plot,Curve,Non Linear,目前,我可以使用以下代码将数据绘制为两条曲线 from numpy import * import math import matplotlib.pyplot as plt t = [1,2,4,8] raw_1 = [0.02, 0.02, 0.3, 0.4] raw_2 = [0.6, 0.7, 0.2, 0.3] plt.plot(t, raw_1, color='r', marker='o') plt.plot(t, raw_2, color='b', marker='o')

目前,我可以使用以下代码将数据绘制为两条曲线

from numpy import *
import math
import matplotlib.pyplot as plt

t = [1,2,4,8] 
raw_1 = [0.02, 0.02, 0.3, 0.4] 
raw_2 = [0.6, 0.7, 0.2, 0.3]
plt.plot(t, raw_1, color='r', marker='o') 
plt.plot(t, raw_2, color='b', marker='o')  
plt.show()
然而,我希望x轴是非线性的。例如,只有1、2、4、8可见,并且它们的x记号以相同的距离分隔。如图所示:

我不太熟悉Matplotlib,有人能告诉我如何生成具有上述x轴的绘图吗

我尝试了plt.xscale('log'),但得到了以下曲线图:


两个相邻节点之间的距离看起来不错,但XTICK看起来不太好。

针对任意等距数字进行绘图(使用
range()
很方便),然后用实际标签替换标签:

t = [1,2,4,8] 
raw_1 = [0.02, 0.02, 0.3, 0.4] 
raw_2 = [0.6, 0.7, 0.2, 0.3]
x = range(len(t))
plt.plot(x, raw_1, color='r', marker='o') 
plt.plot(x, raw_2, color='b', marker='o')
plt.xticks(x,t)
plt.show()

plt.scale('log')
将设置对数刻度距离。请参阅,例如,有两种方法可以做到这一点。1.可以用对数标度绘制x轴。2.可以使用1,2,4,8作为分类变量。您认为哪种方式更合适?请不要从numpy导入*执行
,而是始终
将numpy作为np导入
。因为numpy重新定义了一些非常常见的函数,所以可能会出现非常奇怪的行为。@kate melnykova可以使用1,2,4,8作为分类变量吗?我试过plt.xscale('log'),但棍子看起来很奇怪。请检查答案