【发布时间】:2020-11-01 22:04:19
【问题描述】:
与绘图和以下用户定义函数有关的两个问题。作为背景,这是我第一次看到 plt.plot 在 for 循环中调用,这样每个点都是单独绘制的。我习惯于看到整个数组作为参数传递,例如plt.plot(x, f(x))。我的第一个问题是迭代每个点并每次调用 plt.plot 有什么好处?与调用plt.plot(x, f(x)) 并通过一次所有点相比,使用此方法是否可以对绘图进行一些额外的控制?
我的第二个问题是关于下面函数中的样式参数。我不确定索引到包含单个字符的列表如何或为什么有效? styles = [‘b’] 是一个包含单个字符的列表。所以我的期望是,任何使用非 0 参数的切片/索引都会引发异常。换句话说,我希望当 for 循环索引超过 0(例如 styles[1], styles [2], 等)时,会引发异常。我错过了什么?
import numpy as np
from pylab import plt, mpl
plt.style.use('seaborn')
mpl.rcParams['font.family'] = 'serif'
%matplotlib inline
def f(x):
return np.sin(x) + 0.5 * x
def create_plot(x, y, styles, labels, axlabels):
plt.figure(figsize=(10, 6))
for i in range(len(x)):
plt.plot(x[i], y[i], styles[i], label=labels[i])
plt.xlabel(axlabels[0])
plt.ylabel(axlabels[1])
plt.legend(loc=0)
x = np.linspace(-2 * np.pi, 2 * np.pi, 50)
create_plot([x], [f(x)], ['b'], ['f(x)'], ['x', 'f(x)'])
【问题讨论】:
标签: python-3.x matplotlib