有时我遇到这样的代码:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
fig = plt.figure()
fig.add_subplot(111)
plt.scatter(x, y)
plt.show()
Run Code Online (Sandbox Code Playgroud)
哪个产生:

我一直在疯狂阅读文档,但我无法找到解释111.有时我看到了212.
这个论点fig.add_subplot()意味着什么?
我想对绘图中的几个选定的刻度标签进行一些修改.
例如,如果我这样做:
label = axes.yaxis.get_major_ticks()[2].label
label.set_fontsize(size)
label.set_rotation('vertical')
Run Code Online (Sandbox Code Playgroud)
更改刻度标签的字体大小和方向.
但是,如果尝试:
label.set_text('Foo')
Run Code Online (Sandbox Code Playgroud)
刻度标签未被修改.如果我这样做:
print label.get_text()
Run Code Online (Sandbox Code Playgroud)
没有打印.
这里有些陌生.当我尝试这个时:
from pylab import *
axes = figure().add_subplot(111)
t = arange(0.0, 2.0, 0.01)
s = sin(2*pi*t)
axes.plot(t, s)
for ticklabel in axes.get_xticklabels():
print ticklabel.get_text()
Run Code Online (Sandbox Code Playgroud)
仅打印空字符串,但该图包含标记为"0.0","0.5","1.0","1.5"和"2.0"的刻度线.
我想在4个轴上绘制图形,在每个轴上绘制前三个单独的绘图,最后在最后一个轴上绘制所有3个绘图.这是代码:
from numpy import *
from matplotlib.pyplot import *
fig=figure()
data=arange(0,10,0.01)
ax1=fig.add_subplot(2,2,1)
ax2=fig.add_subplot(2,2,2)
ax3=fig.add_subplot(2,2,3)
ax4=fig.add_subplot(2,2,4)
line1=ax1.plot(data,data)
line2=ax2.plot(data, data**2/10, ls='--', color='green')
line3=ax3.plot(data, np.sin(data), color='red')
#could I somehow use previous plots, instead recreating them all?
line4=ax4.plot(data,data)
line4=ax4.plot(data, data**2/10, ls='--', color='green')
line4=ax4.plot(data, np.sin(data), color='red')
show()
Run Code Online (Sandbox Code Playgroud)
结果图片是:
有没有办法首先定义图,然后将它们添加到轴,然后绘制它们?这是我心中的逻辑:
#this is just an example, implementation can be different
line1=plot(data, data)
line2=plot(data, data**2/10, ls='--', color='green')
line3=plot(data, np.sin(data), color='red')
line4=[line1, line2, line3]
Run Code Online (Sandbox Code Playgroud)
现在在ax1上绘制line1,在ax2上绘制line2,在ax3上绘制line3,在ax4上绘制line4.
哪个对象包含属性ylim()?在下面的代码(我已导入所需的软件包,并x1和y1阴谋正确)设置y轴的限制,我不得不使用plt.ylim(),为什么会这样?在我自己的脑海中,我会使用ax1.ylim()因为y轴属于ax对象实例.有人可以解释为什么这不正确?
我在这里看到这篇文章:
为什么许多例子在Matplotlib/pyplot/python中使用"fig,ax = plt.subplots()"
这有助于澄清一点,但我仍然不确定.谢谢!
x1 = df_mstr1['datetime'].values
y1 = df_mstr1['tons'].values
fig1, ax1 = plt.subplots()
ax1.stackplot(x1, y1, color='blue')
plt.ylim(0,300)
fig1.savefig('page.pdf', format = 'pdf')
Run Code Online (Sandbox Code Playgroud)