如何在Jupyter笔记本中制作内联图?

时间:2016-04-02 00:51:38

标签: python matplotlib ipython jupyter-notebook

我已经使用“%matplotlib inline在我的Ipython笔记本上内嵌了我的情节。”

现在,情节出现了。但是,它非常小。是否有办法使用笔记本设置或绘图设置使其看起来更大?

enter image description here

10 个答案:

答案 0 :(得分:267)

默认的数字大小(以英寸为单位)由

控制
matplotlib.rcParams['figure.figsize'] = [width, height]

例如:

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

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

的图形

答案 1 :(得分:118)

是的,和figuresize一样玩(在你打电话给你的子情节之前):

fig=plt.figure(figsize=(18, 16), dpi= 80, facecolor='w', edgecolor='k')

答案 2 :(得分:45)

我发现%matplotlib notebook对我来说比使用Jupyter笔记本更好。

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

答案 3 :(得分:15)

问题是关于matplotlib,但是为了任何R用户最终在这里给出了与语言无关的标题:

如果您使用的是R内核,请使用:

options(repr.plot.width=4, repr.plot.height=3)

答案 4 :(得分:6)

要调整一个图形的大小:

import matplotlib.pyplot as plt

fig=plt.figure(figsize=(15, 15))

要更改默认设置,并更改所有图,请执行以下操作:

import matplotlib.pyplot as plt

plt.rcParams['figure.figsize'] = [15, 15]

答案 5 :(得分:6)

如果您只希望在不改变图形外观的情况下将图形图像放大显示,则可以提高图形分辨率。根据大多数其他答案中的建议更改图形大小会改变外观,因为字体大小不会相应缩放。

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

答案 6 :(得分:2)

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

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

它没有使用公共 API,可能有一天会停止工作。 screenshot of a full-width matplotlib plot

答案 7 :(得分:1)

使用类似的内容:

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)

命令的输出

the output of the command

答案 8 :(得分:0)

一个很小但是很重要的细节,用于一次性调整图形大小(如上述几位评论者所说,“这对我不起作用”)

您应该在定义实际图之前执行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()

答案 9 :(得分:0)

“图重叠”的快速解决方案是使用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()