簡體   English   中英

matplotlib:savefig 省略了 eps 中的文本和軸標簽

[英]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.

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