【发布时间】:2016-07-21 22:45:36
【问题描述】:
【问题讨论】:
标签: python matplotlib ipython jupyter-notebook
【问题讨论】:
标签: python matplotlib ipython jupyter-notebook
默认图形大小(以英寸为单位)由
控制matplotlib.rcParams['figure.figsize'] = [width, height]
例如:
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [10, 5]
创建一个 10(宽)x 5(高)英寸的图形
【讨论】:
figsize=(x,y) 参数在 jupyter 中无效。但是,按照您的建议修改 matplob.rcParams 效果很好。
%matplotlib inline之后运行此。
%matplotlib inline 似乎会将图形大小覆盖回默认值。
是的,像这样玩figuresize 和dpi(在调用子情节之前):
fig=plt.figure(figsize=(12,8), dpi= 100, facecolor='w', edgecolor='k')
正如@tacaswell 和@Hagne 指出的那样,如果不是一次性的,您也可以更改默认值:
plt.rcParams['figure.figsize'] = [12, 8]
plt.rcParams['figure.dpi'] = 100 # 200 e.g. is really fine, but slower
【讨论】:
我发现%matplotlib notebook 比内联 Jupyter 笔记本更适合我。
请注意,如果您之前使用的是%matplotlib inline,则可能需要重新启动内核。
2019 年更新:
如果您正在运行 Jupyter Lab,您可能希望使用
%matplotlib widget
【讨论】:
df.plot() 的空白图像。我不得不回到%matplotlib inline
%matplotlib inline 切换到%matplotlib notebook 会产生空白输出。从%matplotlib notebook 切换到%matplotlib inline 工作正常。
jupyter labextension install @jupyter-widgets/jupyterlab-manager)之前,我在%matplotlib widget 上遇到了很多麻烦。
如果您只想让人物的图像看起来更大而不改变人物的整体外观,请提高人物分辨率。按照大多数其他答案中的建议更改图形大小会改变外观,因为字体大小不会相应地缩放。
import matplotlib.pylab as plt
plt.rcParams['figure.dpi'] = 200
【讨论】:
问题是关于matplotlib,但为了任何最终来到这里的 R 用户,给出了与语言无关的标题:
如果您使用的是 R 内核,只需使用:
options(repr.plot.width=4, repr.plot.height=3)
【讨论】:
调整一个图形的大小:
import matplotlib.pyplot as plt
fig=plt.figure(figsize=(15, 15))
要更改默认设置,从而更改所有绘图:
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [15, 15]
【讨论】:
一次性调整图形大小的一个小而重要的细节(正如上面的几位评论者报告的“这对我不起作用”):
您应该在定义实际情节之前执行 plt.figure(figsize=(,)) 。例如:
这应该根据您指定的 figsize 正确调整绘图的大小:
values = [1,1,1,2,2,3]
_ = plt.figure(figsize=(10,6))
_ = plt.hist(values,bins=3)
plt.show()
而这将显示默认设置的情节,似乎“忽略”了 figsize:
values = [1,1,1,2,2,3]
_ = plt.hist(values,bins=3)
_ = plt.figure(figsize=(10,6))
plt.show()
【讨论】:
“绘图重叠”的快速解决方法是使用 plt.tight_layout():
for i,var in enumerate(categorical_variables):
plt.title(var)
plt.xticks(rotation=45)
df[var].hist()
plt.subplot(len(categorical_variables)/2, 2, i+1)
plt.tight_layout()
【讨论】: