【发布时间】:2016-06-22 21:26:19
【问题描述】:
我尝试将来自单个参数的多个函数可视化。我需要对参数进行某种循环。我想为给定参数的所有绘图函数分配相同的颜色、图例等。
问题是我尝试的所有图,matplotlib 分配不同的颜色并且总是给出一个标签。
基本上我想达到以下目标:
import numpy as np
import matplotlib.pyplot as plt
def plot2():
fig, ax = plt.subplots()
x = np.arange(0,10,0.1)
ax.plot(x,1*np.sin(x),'b-')
ax.plot(x,1*np.cos(x),'b-',label='trig a={}'.format(1))
ax.plot(x,2*np.sin(x),'g-')
ax.plot(x,2*np.cos(x),'g-',label='trig a={}'.format(2))
ax.plot(x,3*np.sin(x),'r-')
ax.plot(x,3*np.cos(x),'r-',label='trig a={}'.format(3))
ax.legend()
但功能如下:
def plotTrig():
fig, ax = plt.subplots()
x = np.arange(0,10,0.1)
for a in [1,2,3]:
ax.plot(x,a*np.sin(x),x,a*np.cos(x),label='trig a={}'.format(a))
ax.legend()
以上仅为简化示例。在实践中我有更多的函数和参数,所以循环颜色的解决方案不是很有帮助
【问题讨论】:
-
我不明白为什么你不能硬编码情节语句中的颜色,如果你每次都想要相同的颜色:
ax.plot(x,a*np.sin(x),x,a*np.cos(x), '-ks' ,label='trig a={}'.format(a))。请注意添加了'-ks':即黑色 (k) 实线 (-) 以及值所在的正方形 (s)。您可以将其更改为您想要的样式,并且每个绘图都将具有相同的样式。 -
在原始问题中,每个参数显示超过 10 个函数,并且在迭代过程中显示了许多参数。硬编码颜色可以解决一些问题,但在某些情况下,我会用完颜色列表。另一个大问题是每个函数都会有一个我必须避免的关联图例。此外,我正在根据参数对函数图进行注释,这更加复杂。
标签: python matplotlib