在matplotlib中以10的负幂绘制xscale

时间:2019-05-28 20:55:33

标签: python pandas numpy matplotlib plot

预先感谢您抽出宝贵时间阅读我的问题。我在matplotlib中绘制10的负幂数组时遇到了麻烦

我已经阅读了matplotlib文档中的所有log xscale选项,但无济于事。我还阅读了以下问题以及其他一些看起来相似的问题,但它们并没有最终帮助我:

Matplotlib: disable powers of ten in log plot

Plot Axis in Python with Log Scale for Negative Exponents of 10

Logscale plots with zero values in matplotlib *with negative exponents*

Logscale plots with zero values in matplotlib

这或多或少是我的代码的简单形式。

x = np数组,具有100个值0.99999、0.9999、0.999、0.99

y = np数组,需要绘制相应的评估输出。

plt.plot(x, y, 'o')
plt.xticks([0.99999,0.9999,0.999,0.99])
plt.gca().set_xscale('log')

我要获得的图是在其相应的y值绘制的x轴上均匀分布的值0.99999、0.9999、0.999和0.99。

我再次非常感谢您抽出宝贵的时间阅读此问题,并衷心希望您能帮助我!

1 个答案:

答案 0 :(得分:1)

通过将y与[0,1,2,3,...]作图,然后将xtickslabel替换为[0.9999,0.999,0.99,...],可以轻松地“伪造”这种图。

x = [0.99999,0.9999,0.999,0.99]
y = [1,2,3,4]
fig, ax = plt.subplots()
ax.plot(range(len(x)),y, 'o-')
ax.set_xticks(range(len(x)))
ax.set_xticklabels(x)

enter image description here