在python上使用matplotlib挤压x轴图形比例[重复]
Posted
技术标签:
【中文标题】在python上使用matplotlib挤压x轴图形比例[重复]【英文标题】:Squeezing x axis graph scale with matplotlib on python [duplicate] 【发布时间】:2021-09-10 12:48:18 【问题描述】:我已经制作了下面的图表:
我尝试将 x 轴的比例更改为 10^n,其中 n = -4,-2,-1,0,1: 第二张图是用matlab制作的:
我尝试过在 python 中使用 xtics 函数(第一个图),但结果并非应有的样子。
如何在python中更改图形比例,使结果与第二个图相同?
这是我用python制作的绘图代码:
...
plt.figure()
plt.subplot(211)
plt.title('Grafik Simpangan dan Kecepatan')
plt.plot(array_1,array_3, 'r')
plt.ylabel('Simpangan (y) meter')
plt.xticks([0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10])
plt.grid()
plt.subplot(212)
plt.plot(array_1,array_2, 'b')
plt.ylabel('Kecepatan (v) m/s')
plt.xlabel('Waktu (s)')
plt.xticks([0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10])
plt.grid()
plt.show()
【问题讨论】:
您想将 x 轴设置为对数刻度。您可以将plt.plot(array_1, array_3)
更改为plt.semilogx(array_1, arrar_3)
。或者,您也可以致电plt.xscale('log')
。
【参考方案1】:
, 可以分享一下你在matlab中使用的代码吗???
或者 使用 matplotlib.pyplot.xlim() 和 matplotlib.pyplot.ylim() 更改轴刻度 调用 matplotlib.pyplot.xlim() 和 matplotlib.pyplot.ylim() 以获取当前轴的 x 和 y 限制。然后调用 matplotlib.pyplot.xlim(new_xmin, new_xmax) 和 matplotlib.pyplot.ylim(new_ymin, new_ymax) 将 x 和 y 限制设置为新值,每个值都是原始值乘以比例因子。
plt.xlim(xmin * scale_factor, xmax * scale_factor)
plt.ylim(ymin * scale_factor, ymax * scale_factor)
【讨论】:
感谢您的回答。抱歉,我无法显示 matlab 代码,因为我从 Journal 得到了这个数字,而作者只显示了这个数字。我已经尝试过你的建议,但结果仍然不是我所期望的。This is my code
...
``plt.figure()
987654328 plt.title('Grafik Simpangan dan Kecepatan')
987654330 plt.ylabel('Simpangan (y) meter')
987654332 plt.xticks([0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10])
987654334 @``plt.subplot(212)
987654336 plt.ylabel('Kecepatan (v) m/s')
987654338 @plt.grid()
plt.xticks([0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10])
plt.xlim(1 * 10**-4, 1 * 10)
plt.show()
link
plt.semilogx 可用于在 x 轴上生成对数刻度的图。 Here 是一些例子。以上是关于在python上使用matplotlib挤压x轴图形比例[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 python 中导入 pandas 会改变 matplotlib 处理日期时间对象的方式?
使用 Python 的 matplotlib 在 x 轴上绘制日期
Python matplotlib - 如何在x轴上绘制一条线?