【问题标题】:Plotting xscale with negative powers of 10 in matplotlib在 matplotlib 中以 10 的负幂绘制 xscale
【发布时间】:2019-05-29 05:21:06
【问题描述】:

提前感谢您花时间阅读我的问题。我在 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 数组,包含 0.99999、0.9999、0.999、0.99 的 100 个值

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

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

我想要获得的是一个只有值 0.99999、0.9999、0.999、0.99 的图,它们在 x 轴上均匀分布,相对于它们对应的 y 值绘制。

再次感谢您抽出宝贵时间阅读这个问题,我真诚地希望您能帮助我!

【问题讨论】:

  • 您能否发布一个最小且完整的示例,包括一些可复制粘贴的示例数据?
  • 0.99999,0.9999,0.999,0.99 不是对数级数,因此它与对数刻度不均匀分布也就不足为奇了。您是否考虑过改为绘制1-x

标签: python pandas numpy matplotlib plot


【解决方案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)

【讨论】:

  • 非常感谢!这个答案引导我走上创建我想要的情节的道路。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-03
相关资源
最近更新 更多