[英]matplotlib: savefig omits text and axes labels in eps
如果我執行以下代碼,生成的 eps 文件不包含刻度標簽或軸標簽。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,2*np.pi,100)
y = np.sin(x)
plt.figure()
plt.plot(x,y)
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.savefig('image.eps', format='eps')
作為一些附加信息:我正在使用 anaconda 發行版的 4.3.0 版並在 Spyder 3.1..2 中執行我的代碼。 我測試了兩個后端 TkAgg 和 Qt5Agg,結果都是一樣的。
任何想法如何獲得正確的 eps 文件?
或者:如果我想稍后導入到 MS Word 中,我可以使用哪種其他矢量圖形格式?
所以我認為你會在這里找到答案: https : //stackoverflow.com/a/20817722/2402281
可能是您的 matplotlib 后端不支持該操作。 您可以按如下方式更改 matplotlib 后端:
# The default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo
# CocoaAgg MacOSX Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG
import matplotlib
matplotlib.use('PS')
或在 matplotlibrc 中(請參閱文檔)。
我遇到了同樣的問題。 當我繪制時間序列或散點圖時,eps 文件很好。 但是當我使用數據框數據繪制地理空間圖時,保存的 eps 文件不包含文本和刻度標簽。 所以我只是嘗試:
import matplotlib
matplotlib.use('PS')
matplotlib.rcParams['text.usetex'] = True
似乎如果您將text.usetex
為 True,它可能會有所幫助。 順便說一句,我的 Matplotlib 是 3.4.2,操作系統是 MacOS,我使用的是 Python 3.7 的 Spyder。 實際上我不知道為什么它有時會起作用有時不起作用,以及為什么在我添加matplotlib.rcParams['text.usetex'] = True
之后它起作用......這可能是因為我在繪制地理空間圖時使用了 alpha (例如在ax.scatter
設置alpha=5
)。 稍后我會舉一些小例子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.