matplotlib中的Mathtext标记

时间:2011-07-15 13:48:46

标签: python matplotlib marker

由于我需要在一个图中绘制许多曲线,我需要许多不同类型的标记。有时默认标记的数量是不够的,因此如果用户可以自定义标记类型,那就太好了。

根据文档页面(http://matplotlib.sourceforge.net/api/artist_api.html#matplotlib.lines.Line2D.set_marker),可以使用mathtext作为标记。但是,它在我的情况下不起作用。

plot(x, y, marker='$||$') # To use two vertical lines as the marker.

错误信息如下:

File "/usr/lib/pymodules/python2.6/matplotlib/axes.py", line 3432, in plot
  for line in self._get_lines(*args, **kwargs):
File "/usr/lib/pymodules/python2.6/matplotlib/axes.py", line 311, in _grab_next_args
  for seg in self._plot_args(remaining, kwargs):
File "/usr/lib/pymodules/python2.6/matplotlib/axes.py", line 298, in _plot_args
  seg = func(x[:,j%ncx], y[:,j%ncy], kw, kwargs)
File "/usr/lib/pymodules/python2.6/matplotlib/axes.py", line 248, in _makeline
  self.set_lineprops(seg, **kwargs)
File "/usr/lib/pymodules/python2.6/matplotlib/axes.py", line 191, in set_lineprops
  func(val)
File "/usr/lib/pymodules/python2.6/matplotlib/lines.py", line 804, in set_marker
  self._markerFunc = self._markers[marker]
KeyError: '$||$'

matplotlib版本是:

matplotlib.__version__
'0.99.1.1'

我也尝试了plot(x, y, marker=r'$||$'),这也不起作用。

1 个答案:

答案 0 :(得分:0)

您是否在matplotrc文件中设置了text.usetex?您还需要使用正确的输出后端,例如Postscript或PDF。