如何使用matplotlib.pyplot在xticks中包含负数?

时间:2019-11-10 23:06:15

标签: python matplotlib

我有一个看起来像这样的DataFrame:

df = [4, -1, 5, -32, 4, -32, -1]

我要这样设置xticks

tick_locs = [-30, -10, 0, 10, 30, 100, 300, 1000, 3000]
plt.xticks(tick_locs, tick_locs)

这给了我一个奇怪的图: enter image description here

我可以将刻度线设置为所有正数,但是不会在x轴上给我负数:

tick_locs = [10, 30, 100, 300, 1000, 3000]
plt.xticks(tick_locs, tick_locs)

enter image description here

有什么办法获得负勾号吗?

P.S。数据设置为已记录,但x轴设置为显示实际数字:

bin_edges = 10 ** np.arange(-0.1, np.log10(planes_df['ArrDelay'].max())+0.1, 0.1)
plt.hist(planes_df['ArrDelay'], bins = bin_edges)
plt.xscale('log')
tick_locs = [10, 30, 100, 300, 1000, 3000]
plt.xticks(tick_locs, tick_locs)

1 个答案:

答案 0 :(得分:1)

尝试删除plt.xscale('log')行。这将使x轴比例线性化。对数轴无法显示非正值,因为log(x)未定义x <= 0