2
由於我需要在單個圖中繪製多條曲線,因此需要多種不同類型的標記。有時缺省標記的數量不夠,所以如果用戶可以自定義標記類型將會很好。matplotlib中的Mathtext標記
根據文檔頁面(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'$||$')
,這也不管用。
感謝您的回答。我嘗試了以下,但結果是相同的: matplotlib.use('cairo.ps') matplotlib.rc('text',usetex = True) – FJDU
嗯。真奇怪。你可以嘗試在其他地方使用mathtext嗎?例如添加一個標籤的情節,看看它是否正確渲染 – carlpett
我嘗試了類似mathtext的以下內容,它似乎很好:add_subplot(1,1,1,xscale ='log',yscale ='log ',xlim =(1,100),ylim =(1,10),xlabel = r'$ n_ {{\ rm H}} $',ylabel = r'$ \ frac {1} {2} $',title = '$ \ mu $ m,$ _ H $ = 10 cm $^{{ - 3}} $' 所以我覺得正常的mathtext沒有問題 – FJDU