簡體   English   中英

使用\\ odot作為標記時的Matplotlib / Latex問題

[英]Matplotlib/Latex issues when using \odot as marker

我正在嘗試將乳膠符號\\odot用作散點圖中的標記,但我也需要乳膠樣式的刻度線,但由於某些原因,這兩者不能很好地配合使用。 我可以成功地使用marker=$\\\\odot$usetex=False像這樣的 ,但是當我將其設置為真(獲得蜱字體右),我得到! LaTeX Error: File 'type1cm.sty' not found. ! LaTeX Error: File 'type1cm.sty' not found. 我已經經歷了,以確保我已經安裝了豬圈文件,並在正確的目錄,並且我已經安裝了所有的依賴關系(如建議在這里 )。 另外,我仍然可以使用usetex=True並使用任何普通的pyplot標記,只是不涉及數學字體的任何標記,但是我可以在圖例的標簽中添加\\odot Ive也已經嘗試在rc參數后面加上amsmath,但仍然不斷收到type1cm錯誤。 我也嘗試使用原始字符串文字無濟於事。

所以基本上當usetex=True ,我可以在圖例的標簽中使用數學符號,而不能用作實際標記。 有人遇到過這個問題嗎?

我目前的工作僅涉及繪制一個大的未填充圓並過度繪制一個小的填充圓(基本上是模擬odot)。 然后,我遇到了與傳說的問題,所以我基本上要創建一個透明的傳奇表現出大空心圓,然后用手繪制它背后的小實心圓這樣它最終靠不住的,但這軸刻度字體,我需要。 但是,如果我必須更改軸限制,這將非常令人沮喪,因為我必須重復找出在哪里重新繪制小的實心圓的過程。

有誰知道是否有比這更好的解決方法? 是否可以像以前一樣使用過度繪圖方案,然后創建一個自定義代理藝術家以在圖例中顯示\\odot符號(以不同的顏色/大小顯示)?

Mac OSX,matplotlib 1.4.2,python 2.7,matplotlib正在通過TeX Live 2017 / Mac Ports 2017使用pdfTeX

編輯:這是我的代碼

plt.rc('text', usetex=True)
plt.rc('font', family='serif')

f, ax1 = plt.subplots(1,1)
x = np.arange(20)
y = x

ax1.scatter(x, y, marker='$\\odot$', edgecolors='b', s=200, label = 'Test') #used with usetex=False
#ax1.scatter(x, y, marker='o', edgecolors='b', s=200, label = 'Test') #used with usetex=True


ax1.tick_params(labelsize=24)
leg = ax1.legend(scatterpoints=1,  loc='lower right', borderaxespad=0., handletextpad=0.)#, fontsize=18) # borderpad=0.,)

我不確定在沒有看到您的代碼的情況下能提供多少幫助,但這對我有用:

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

x1 = [1,2]; x2 = [1,2]
y1 = [1,1]; y2 = [2,2]

mpl.rc('text', usetex = True)
fig, ax = plt.subplots(1,1)
ax.scatter(x1,y1, label='A1', marker=r'$\odot$',s=150, c='b')
ax.scatter(x2,y2, label='A2', marker=r'$\odot$',s=50, c='b')
ax.set_xlim(0,3)
ax.set_ylim(0,3)
ax.legend()
fig.show()

在此處輸入圖片說明

如果這樣做沒有幫助,請通知我!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM