轴没有显示我想要的刻度线

时间:2016-07-16 20:39:05

标签: python matplotlib

我想绘制一张Ramachandron情节。在这种图表中,x从-180°到180°,y也是如此。我想要每60度打勾。所以这是我使用的代码:

import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm

x = [-179, 179]
y = [-179, 179]

fig = plt.figure(1)
ax = plt.subplot(111)

ax.axis([-180, 180, -180, 180])

ax.set_xticks([-180, -120, -60, 0, 60, 120, 180])
ax.set_yticks([-180, -120, -60, 0, 60, 120, 180])


# 1 bim = 1 degree
# !!! Logarithmic normalization of the colors
plt.hist2d(x, y, bins=180, norm=LogNorm())
plt.colorbar()
plt.show()

在这个工作示例中,我只绘制了两点。但是没有显示刻度-180和180,没有轴:

enter image description here

如果我将x和y更改为:

x = [-180, 180]
y = [-180, 180]

我得到了我想要的东西:

enter image description here

有没有办法在不改变数据的情况下实现第二个结果?

1 个答案:

答案 0 :(得分:0)

你使用hist2d,在绘图后设置轴刻度:

import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm

x = [-179, 179]
y = [-179, 179]

fig = plt.figure(1)
ax = plt.subplot(111)

# 1 bim = 1 degree
# !!! Logarithmic normalization of the colors
plt.hist2d(x, y, bins=180, norm=LogNorm())
plt.colorbar()

ax.axis([-180, 180, -180, 180])
ax.set_xticks([-180, -120, -60, 0, 60, 120, 180])
ax.set_yticks([-180, -120, -60, 0, 60, 120, 180])

plt.show()

enter image description here