相关疑难解决方法(0)

Matplotlib - 对数刻度,但需要非对数标签

如何阻止y轴在y轴上显示对数表示法标签?

我对对数刻度感到满意,但想要在Y轴上显示绝对值,例如[500,1500,4500,11000,110000].我不想明确标记每个标记,因为标签可能在将来发生变化(我尝试过不同的格式化程序,但没有成功地使它们工作).示例代码如下.

谢谢,

-collern2

import matplotlib.pyplot as plt
import numpy as np

a = np.array([500, 1500, 4500, 11000, 110000])
b = np.array([10, 20, 30, 40, 50])

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.set_yscale('log')

plt.plot(b, a)
plt.grid(True)
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

22
推荐指数
1
解决办法
1万
查看次数

Matplotlib:设置x-limits也强制刻度标签?

我刚升级到matplotlib 2.0,我觉得我正在疯狂吃药.我正在尝试制作对数线性图,其中y轴为线性刻度,x轴为log10刻度.以前,下面的代码可以让我准确指出我想要的刻度线,以及我希望它们的标签是什么:

import matplotlib.pyplot as plt

plt.plot([0.0,5.0], [1.0, 1.0], '--', color='k', zorder=1, lw=2)

plt.xlim(0.4,2.0)
plt.ylim(0.0,2.0)

plt.xscale('log')

plt.tick_params(axis='x',which='minor',bottom='off',top='off')

xticks = [0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0]
ticklabels = ['0.4', '0.6', '0.8', '1.0', '1.2', '1.4', '1.6', '1.8', '2.0']
plt.xticks(xticks, ticklabels)

plt.show()
Run Code Online (Sandbox Code Playgroud)

但是在matplotlib 2.0中,这现在让我得到一组重叠的刻度标签,其中matplotlib显然想要自动创建刻度:

在此输入图像描述

但是,如果我注释掉"plt.xlim(0.4,2.0)"行并让它自动确定轴限制,则没有重叠的刻度标签,我只得到我想要的那些:

在此输入图像描述

但这不起作用,因为我现在有无用的x轴限制.

有任何想法吗?

编辑:对于将来搜索互联网的人,我越来越相信这实际上是matplotlib本身的一个错误.我回到了1.5.3节.要避免这个问题.

matplotlib

8
推荐指数
1
解决办法
3450
查看次数

标签 统计

matplotlib ×2

python ×1