【发布时间】:2015-10-26 21:32:18
【问题描述】:
我正在尝试编写允许不同标记样式的 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()
这设法仅生成标记 ='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
但是,我可以改写plt.plot(x, y, markers[i], color=colors[i]) 来让它工作。
color=... 比较有效。
我认为这与特殊字符有关。
我尝试了其他标记:
标记.,* 工作。
标记:,-- 没有。
我尝试在标记字符串前面加上 r 或 u(加上 # -*- coding: utf-8 -*-)。没有帮助。
我必须转义标记字符串还是这里出了什么问题?
【问题讨论】:
标签: python matplotlib ipython anaconda