如何使 Jupyter Notebook 中的内联图变大?

How to make inline plots in Jupyter Notebook larger?

我已经在我的 Ipython 笔记本上使用“%matplotlib inline”内嵌绘图。“=12=]

现在,剧情出现了。然而,它非常小。有没有办法使用笔记本设置或绘图设置使它看起来更大?

是的,像这样玩 figuresizedpi(在调用子图之前):

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.rcParams['figure.figsize'] = [width, height]

例如:

import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [10, 5]

创建一个 10(宽)x 5(高)英寸的图形

我发现 %matplotlib notebook 比内联 Jupyter 笔记本更适合我。

请注意,如果您之前使用 %matplotlib inline,您可能需要重新启动内核。

2019 年更新: 如果您是 运行 Jupyter Lab,您可能想使用 %matplotlib widget

问题是关于 matplotlib 的,但是为了所有 R 用户的缘故,这里给出了 language-agnostic 标题:

如果您使用的是 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]

如果您只想让您的图形图像显得更大而不改变图形的整体外观,请提高图形分辨率。按照大多数其他答案中的建议更改图形大小将改变外观,因为字体大小不会相应缩放。

import matplotlib.pylab as plt
plt.rcParams['figure.dpi'] = 200

在 one-off 基础上调整图形大小的一个小但重要的细节(正如上面的几位评论者所报告的 "this doesn't work for me"):

您应该 plt.figure(figsize=(,)) 在定义您的实际情节之前。例如:

这应该会根据您指定的图形大小正确调整图的大小:

values = [1,1,1,2,2,3]
_ = plt.figure(figsize=(10,6))
_ = plt.hist(values,bins=3)
plt.show()

而这将显示具有默认设置的绘图,似乎 "ignore" 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()

使用类似的东西:

import matplotlib.pyplot as plt
%matplotlib inline
plt.subplots(figsize=(18,8 ))
plt.subplot(1,3,1)
plt.subplot(1,3,2)
plt.subplot(1,3,3)

命令的输出

可以将图缩放到整个单元格宽度。

  1. 主要绘制折线图时使用svg格式而不是位图:
%config InlineBackend.figure_format = 'svg'
  1. 强制绘图为 100% 宽度(粘贴到空单元格中):
%%html
<style>
.output_svg div{
  width: 100% !important;
  height: 100% !important;
}
</style>
  1. 您可能还想根据其他答案更改纵横比或其他参数以获得更好的洞察力。

它没有使用 public API,可能有一天会停止工作。