ipython笔记本中的绘图宽度设置
Posted
技术标签:
【中文标题】ipython笔记本中的绘图宽度设置【英文标题】:Plot width settings in ipython notebook 【发布时间】:2015-06-17 19:21:55 【问题描述】:我有以下情节:
如果它们具有相同的宽度会更好看。当我使用%matplotlib inline
时,您知道如何在 ipython 笔记本中执行此操作吗?
更新:
要生成两个数字,我使用以下函数:
import numpy as np
import matplotlib.pyplot as plt
def show_plots2d(title, plots, points, xlabel = '', ylabel = ''):
"""
Shows 2D plot.
Arguments:
title : string
Title of the plot.
plots : array_like of pairs like array_like and array_like
List of pairs,
where first element is x axis and the second is the y axis.
points : array_like of pairs like integer and integer
List of pairs,
where first element is x coordinate
and the second is the y coordinate.
xlabel : string
Label of x axis
ylabel : string
Label of y axis
"""
xv, yv = zip(*plots)
y_exclNone = [y[y != np.array(None)] for y in yv]
y_mins, y_maxs = zip(*
[(float(min(y)), float(max(y))) for y in y_exclNone]
)
y_min = min(y_mins)
y_max = max(y_maxs)
y_amp = y_max - y_min
plt.figure().suptitle(title)
plt.axis(
[xv[0][0], xv[0][-1], y_min - 0.3 * y_amp, y_max + 0.3 * y_amp]
)
plt.xlabel(xlabel)
plt.ylabel(ylabel)
for x, y in plots:
plt.plot(x, y)
for x, y in points:
plt.plot(x, y, 'bo')
plt.show()
def show_plot3d(title, x, y, z, xlabel = '', ylabel = '', zlabel = ''):
"""
Shows 3D plot.
Arguments:
title : string
Title of the plot.
x : array_like
List of x coordinates
y : array_like
List of y coordinates
z : array_like
List of z coordinates
xlabel : string
Label of x axis
ylabel : string
Label of y axis
zlabel : string
Label of z axis
"""
plt.figure().suptitle(title)
plt.pcolormesh(x, y, z)
plt.axis([x[0], x[-1], y[0], y[-1]])
plt.xlabel(xlabel)
plt.ylabel(ylabel)
plt.colorbar().set_label(zlabel)
plt.show()
【问题讨论】:
%matplotlib notebook
【参考方案1】:
如果您使用%pylab inline
,您可以(在新的一行)插入以下命令:
%pylab inline
pylab.rcParams['figure.figsize'] = (10, 6)
这会将文档中的所有数字(除非另有说明)设置为(10, 6)
的大小,其中第一个条目是宽度,第二个条目是高度。
有关详细信息,请参阅此 SO 帖子。 https://***.com/a/17231361/1419668
【讨论】:
简单地说figsize(10, 6)
的工作和时间更容易记住。
NameError: name 'figsize' 未定义【参考方案2】:
我就是这样做的:
%matplotlib inline
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (12, 9) # (w, h)
您可以定义自己的尺寸。
【讨论】:
plt.rcParams["figure.figsize"] =(12,9)
这也有效【参考方案3】:
如果你不在 ipython 笔记本中(比如 OP),你也可以在声明图形时只声明大小:
width = 12
height = 12
plt.figure(figsize=(width, height))
【讨论】:
你知道这是用什么单位来衡量的吗? 单位是英寸,但 YMMV(您的显示器的 DPI 可能与 matplotlib 的假设不匹配)。此外,这不适用于 OP 的环境,即 iPython Notebook! @hobs 你运行的是哪个版本的 iPython notebook?它在 Jupyter 中为我工作。 在 emacs/ein 20161228.741 中为我工作 @hobs 这在 ipython 中对我有用。我网站的 ipython 被稍微黑了,但如果它也不适用于通用 ipython,我会感到非常惊讶。以上是关于ipython笔记本中的绘图宽度设置的主要内容,如果未能解决你的问题,请参考以下文章
如何在 IPython 笔记本中打开交互式 matplotlib 窗口?
可以在不使用内联绘图的情况下远程访问 IPython Notebook 吗?