EPS, созданный с помощью matplotlib, неправильно отображает текст

У меня проблема со шрифтом в eps-файлах из matplotlib.

Шрифт правильно отображается в файле die eps, но когда я вставляю файл в Microsoft Word, он не показывает текст (метки, галочки, заголовок...)

Я уже пытался изменить maplotlib.rcParams, потому что это было решением других проблем с текстом в файлах eps, но ничего не получилось.

РЕДАКТИРОВАТЬ: уже менял matplotlib.use("xxx") тоже, не помогло.

мой код:

# -*- coding: utf-8 -*-

import matplotlib
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm

a = np.array([[1,2,3],[4,5,6],[7,8,9]])

fig = plt.figure(figsize=(12,10))
ax = fig.add_subplot(111, projection='3d')

plt.title("lalala",family='Courier New')
x = range(len(a))
y = range(len(a))
X,Y = np.meshgrid(x,y)
Z = a

ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.set_zlabel("Z")

ax.plot_surface(X,Y,Z, cmap=plt.cm.Reds, cstride=1, rstride=1,alpha=0.3)

plt.savefig("texttestqua.eps")
plt.show()

можно ли "рисовать" текст в файле eps? Чтобы текст был не "шрифтом", а просто графическими векторами?


person Hubschr    schedule 14.03.2014    source источник


Ответы (1)


Я не совсем уверен, связана ли ваша проблема с неспособностью matplotlib правильно сохранить ваши eps или с неспособностью Microsoft Word загрузить векторную графику, отличную от emf/wmf... Тем не менее, я попробую...

Существует довольно много бэкэндов (GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo CocoaAgg MacOSX Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG), пробовали ли вы их все или хотя бы правдоподобное подмножество? Он работает например с PS?


Здесь я использую серверную часть TkAgg, и ваш скрипт выдает для меня следующий вывод: screenshoted_eps_with_text


но когда я вставляю файл в Microsoft Word, он не показывает текст (метки, галочки, заголовок...)

Afaik Microsoft Word изначально не поддерживает векторную графику, если только это не emf. Дополнительные инструкции см. по этой ссылке.

Если это не решит вашу проблему, рассмотрите возможность формулирования явной проблемы.

person tahesse    schedule 10.03.2017