Max*_*ion 2 python matplotlib ipython anaconda
我正在尝试对pyplot
允许不同标记样式的绘图进行编码。这些图是循环生成的。从列表中选择标记。为了演示起见,我还列出了颜色列表。该版本是Python 2.7.9
,IPython 3.0.0
,matplotlib 1.4.3.
这是一个简单的代码示例:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,10)
y=x**2
markers=['d','-d','-']
colors=['red', 'green', 'blue']
for i in range(len(markers)):
plt.plot(x, y, marker=markers[i], color=colors[i])
plt.show()
Run Code Online (Sandbox Code Playgroud)
这样就只能生成marker ='d'的图,因为'-d'
它会返回错误:
...
C:\Users\batman\AppData\Local\Continuum\Anaconda\lib\site-packages\matplotlib\markers.pyc in set_marker(self, marker)
245 self._marker_function = self._set_vertices
246 except ValueError:
--> 247 raise ValueError('Unrecognized marker style {}'.format(marker))
248
249 self._marker = marker
ValueError: Unrecognized marker style -d
Run Code Online (Sandbox Code Playgroud)
但是,我可以改为编写它plt.plot(x, y, markers[i], color=colors[i])
。在color=...
比较工作。
我认为这与特殊字符有关。我试过其他标记:这些标记.
,*
工作。标记:
,--
不要。
我尝试使用r
或u
(带有# -*- coding: utf-8 -*-
)作为标记字符串的前缀。没帮助
我是否必须转义标记字符串或这里出了什么问题?
markers
描述用绘制的点plt.plot
。因此,例如,您可以拥有'o', 's', 'D', '^', 'v' '*', '.', ','
等等。有关可用选项的完整列表,请参见此处。
'-', '--', ':', '-.'
不是标记,而是线型。
因此,这取决于您要绘制的内容。如果您想要一个Axes
带有菱形标记的对象,另一个带有菱形标记和一条线的对象以及最后一个只有一条线的对象,则可以执行以下操作:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,10)
y=x**2
markers=['d','d','None']
lines=['None','-','-']
colors=['red', 'green', 'blue']
for i in range(len(markers)):
# I've offset the second and third lines so you can see the differences
plt.plot(x, y + i*10, marker=markers[i], linestyle=lines[i], color=colors[i])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5081 次 |
最近记录: |