使用网格时不显示主轴
Main axis are not shown when using grid
我想用两个不同的 y 轴将两个图形绘制到同一个图形中。除此之外,我想添加一个网格,然后将绘图另存为pdf。
我的问题 是 - 虽然网格绘制正确 - 主轴不再显示。如何绘制它们?我正在使用 matplotlib 1.5.1
和 Python 2.7.11
。
剧情如下:
这是我使用的代码:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
pp = PdfPages('myplot.pdf')
x = np.linspace(0.1, 10, 100)
y1 = np.exp(x)
y2 = np.log(x)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x, y1, '-ro', markersize=5, label='y1')
ax1.set_ylim(-0.1, 1.1 * max(y1))
ax1.set_ylabel('y1', fontsize=20)
ax1.legend(loc='upper left')
ax1.grid(ls='dotted', c='k')
ax1.patch.set_facecolor('white')
ax2 = ax1.twinx()
ax2.grid(False)
ax2.plot(x, y2, 'b-', label='y2')
ax2.set_ylim(-0.1, 1.1 * max(y2))
ax2.set_ylabel('y2', fontsize=20)
ax2.legend(loc='upper right')
plt.xlim([-0.5, 1.05 * max(x)])
ax1.set_xlabel('x', fontsize=20)
pp.savefig(fig)
pp.close()
plt.close(fig)
它对我有用,绘图正确显示了轴,就像在此处添加的 png 上一样。
以下输出相同:
Python 3.4.4, iPython, Jupyter notebook, matplotlib 1.5.1
Python 2.7.11, iPython, Jupyter notebook, matplotlib 1.5.?
使用的代码是这个 - 除了我添加的用于生成 png 图像的 plt.show() 之外,与发布的代码相同。
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
pp = PdfPages('myplot.pdf')
x = np.linspace(0, 10, 100)
y1 = np.exp(x)
y2 = np.log(x)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x, y1, '-ro', markersize=5, label='y1')
ax1.set_ylim(-0.1, 1.1 * max(y1))
ax1.set_ylabel('y1', fontsize=20)
ax1.legend(loc='upper left')
ax1.grid(ls='dotted', c='k')
ax1.patch.set_facecolor('white')
ax2 = ax1.twinx()
ax2.grid(False)
ax2.plot(x, y2, 'b-', label='y2')
ax2.set_ylim(-0.1, 1.1 * max(y2))
ax2.set_ylabel('y2', fontsize=20)
ax2.legend(loc='upper right')
plt.xlim([-0.5, 1.05 * max(x)])
ax1.set_xlabel('x', fontsize=20)
#plt.show()
pp.savefig(fig)
pp.close()
plt.close(fig)
如果您使用的是 ipython 内核,可能会有一些以前工作的残留设置干扰渲染?您是否尝试过使用新内核?
我想用两个不同的 y 轴将两个图形绘制到同一个图形中。除此之外,我想添加一个网格,然后将绘图另存为pdf。
我的问题 是 - 虽然网格绘制正确 - 主轴不再显示。如何绘制它们?我正在使用 matplotlib 1.5.1
和 Python 2.7.11
。
剧情如下:
这是我使用的代码:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
pp = PdfPages('myplot.pdf')
x = np.linspace(0.1, 10, 100)
y1 = np.exp(x)
y2 = np.log(x)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x, y1, '-ro', markersize=5, label='y1')
ax1.set_ylim(-0.1, 1.1 * max(y1))
ax1.set_ylabel('y1', fontsize=20)
ax1.legend(loc='upper left')
ax1.grid(ls='dotted', c='k')
ax1.patch.set_facecolor('white')
ax2 = ax1.twinx()
ax2.grid(False)
ax2.plot(x, y2, 'b-', label='y2')
ax2.set_ylim(-0.1, 1.1 * max(y2))
ax2.set_ylabel('y2', fontsize=20)
ax2.legend(loc='upper right')
plt.xlim([-0.5, 1.05 * max(x)])
ax1.set_xlabel('x', fontsize=20)
pp.savefig(fig)
pp.close()
plt.close(fig)
它对我有用,绘图正确显示了轴,就像在此处添加的 png 上一样。
以下输出相同:
Python 3.4.4, iPython, Jupyter notebook, matplotlib 1.5.1
Python 2.7.11, iPython, Jupyter notebook, matplotlib 1.5.?
使用的代码是这个 - 除了我添加的用于生成 png 图像的 plt.show() 之外,与发布的代码相同。
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
pp = PdfPages('myplot.pdf')
x = np.linspace(0, 10, 100)
y1 = np.exp(x)
y2 = np.log(x)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x, y1, '-ro', markersize=5, label='y1')
ax1.set_ylim(-0.1, 1.1 * max(y1))
ax1.set_ylabel('y1', fontsize=20)
ax1.legend(loc='upper left')
ax1.grid(ls='dotted', c='k')
ax1.patch.set_facecolor('white')
ax2 = ax1.twinx()
ax2.grid(False)
ax2.plot(x, y2, 'b-', label='y2')
ax2.set_ylim(-0.1, 1.1 * max(y2))
ax2.set_ylabel('y2', fontsize=20)
ax2.legend(loc='upper right')
plt.xlim([-0.5, 1.05 * max(x)])
ax1.set_xlabel('x', fontsize=20)
#plt.show()
pp.savefig(fig)
pp.close()
plt.close(fig)
如果您使用的是 ipython 内核,可能会有一些以前工作的残留设置干扰渲染?您是否尝试过使用新内核?