gpt4 book ai didi

python - 以对数刻度间距绘制 x 轴但不以指数形式标记它

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:06 25 4
gpt4 key购买 nike

我想绘制两个值 x = [0, 10,20,50,100] y=[1,2,3,10,100] 使用 pylab .我想以对数形式保留 x 轴的间距。但我想在 x i'e 的值 10、20、50、100 处打勾并打印它们,因为它不是 10e1 或 10e2 的形式。我是这样做的:

 import matplotlib.pylab as plt
plt.xscale('log')
plt.plot(x, y)
plt.xticks(x)
plt.grid()

但它以 10e1、10e2 的形式保留值。

你能帮帮我吗?

最佳答案

我想你想要的是改变x轴的major_formatter

import matplotlib.pylab as plt
import numpy as np
from matplotlib.ticker import ScalarFormatter

x = [0, 10,20,50,100]
y=[1,2,3,10,100]

plt.plot(x, y)
plt.xscale('log')
plt.grid()

ax = plt.gca()
ax.set_xticks(x[1:]) # note that with a log axis, you can't have x = 0 so that value isn't plotted.
ax.xaxis.set_major_formatter(ScalarFormatter())

plt.show()

scalar_formatter

关于python - 以对数刻度间距绘制 x 轴但不以指数形式标记它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32787773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com