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

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


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 刻度间隔相同的距离。如图所示:

https://img1.sycdn.imooc.com/658a7cc4000188ef06460456.jpg

我对 Matplotlib 不太熟悉,有人可以告诉我如何生成带有上述 x 轴的图吗?

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

https://img1.sycdn.imooc.com/658a7ccf00017b7b06510440.jpg

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



largeQ
浏览 157回答 1
1回答

米脂

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()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python