如何增加this figure的图形大小?
这不起任何作用:
f.figsize(15, 15)
来自链接的示例代码:
import matplotlib.pyplot as plt
import numpy as np
# Simple data to display in various forms
x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)
plt.close('all')
# Just a figure and one subplot
f, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple plot')
# Two subplots, the axes array is 1-d
f, axarr = plt.subplots(2, sharex=True)
axarr[0].plot(x, y)
axarr[0].set_title('Sharing X axis')
axarr[1].scatter(x, y)
# Two subplots, unpack the axes array immediately
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
ax1.plot(x, y)
ax1.set_title('Sharing Y axis')
ax2.scatter(x, y)
# Three subplots sharing both x/y axes
f, (ax1, ax2, ax3) = plt.subplots(3, sharex=True, sharey=True)
ax1.plot(x, y)
ax1.set_title('Sharing both axes')
ax2.scatter(x, y)
ax3.scatter(x, 2 * y ** 2 - 1, color='r')
# Fine-tune figure; make subplots close to each other and hide x ticks for
# all but bottom plot.
f.subplots_adjust(hspace=0)
plt.setp([a.get_xticklabels() for a in f.axes[:-1]], visible=False)
# row and column sharing
f, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex='col', sharey='row')
ax1.plot(x, y)
ax1.set_title('Sharing x per column, y per row')
ax2.scatter(x, y)
ax3.scatter(x, 2 * y ** 2 - 1, color='r')
ax4.plot(x, 2 * y ** 2 - 1, color='r')
# Four axes, returned as a 2-d array
f, axarr = plt.subplots(2, 2)
axarr[0, 0].plot(x, y)
axarr[0, 0].set_title('Axis [0,0]')
axarr[0, 1].scatter(x, y)
axarr[0, 1].set_title('Axis [0,1]')
axarr[1, 0].plot(x, y ** 2)
axarr[1, 0].set_title('Axis [1,0]')
axarr[1, 1].scatter(x, y ** 2)
axarr[1, 1].set_title('Axis [1,1]')
# Fine-tune figure; hide x ticks for top plots and y ticks for right plots
plt.setp([a.get_xticklabels() for a in axarr[0, :]], visible=False)
plt.setp([a.get_yticklabels() for a in axarr[:, 1]], visible=False)
# Four polar axes
f, axarr = plt.subplots(2, 2, subplot_kw=dict(projection='polar'))
axarr[0, 0].plot(x, y)
axarr[0, 0].set_title('Axis [0,0]')
axarr[0, 1].scatter(x, y)
axarr[0, 1].set_title('Axis [0,1]')
axarr[1, 0].plot(x, y ** 2)
axarr[1, 0].set_title('Axis [1,0]')
axarr[1, 1].scatter(x, y ** 2)
axarr[1, 1].set_title('Axis [1,1]')
# Fine-tune figure; make subplots farther from each other.
f.subplots_adjust(hspace=0.3)
plt.show()
6条答案
按热度按时间wfsdck301#
在
plt.subplots()
返回的matplotlib.figure.Figure
对象上使用.set_figwidth
和.set_figheight
,或者使用f.set_size_inches(w, h)
设置两者:或者,使用
.subplots()
创建新地物时,指定figsize=
:.subplots
接受**fig_kw
,这些**fig_kw
被传递给pyplot.figure
,并且是可以找到figsize
的地方。1wnzp6jl2#
除了前面的答案,这里有一个选项,可以通过
gridspec_kw
分别设置图的大小和图中子图的大小:以这个数字作为结果:
1yjd4xko3#
或者,使用
figsize
参数创建figure()
对象,然后使用add_subplot
添加子图。例如这种方法的好处是语法更接近
subplot()
而不是subplots()
的调用。例如,子图似乎不支持使用GridSpec
来控制子图的间距,但subplot()
和add_subplot()
都支持。a11xaf1n4#
您可以使用
plt.figure(figsize = (16,8))
来更改单个图和最多两个子图的图形大小。(figsize中的参数允许修改图形大小)要更改更多子图的图形大小,您可以在创建子图时使用
plt.subplots(2,2,figsize=(10,10))
。kiayqfof5#
用于在
for loop
中绘制subplots
,这有时很有用:multivariate numpy array
(二维)直方图的多个子图的matplotlib
图的示例代码。qhhrdooz6#