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

How to use Matplotlib to plot curves with nonlinear x axis ticks?

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

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'),但我得到了以下情节:

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

为此绘制任意等距数字(使用 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()