2015-12-21 18 views
11

Şeklini SVG olarak vermek için matplotlib.pyplot.savefig("test.svg", format="svg") kullandığımda, sonuçta elde edilen SVG dosyası çok büyüktür.Çıktı matplotlib şekil, metin olarak metinle birlikte SVG'ye, eğri olarak değil

Bu, şeklimde çok sayıda metin açıklaması olduğu ve her metnin SVG'de yol olarak bittiğinden kaynaklanmaktadır.

Metnimin, SVG'de metin dizeleri olarak ve satırlarda görünmesini istiyorum. Metin dizgileri bu şekilde dışa aktarılıyorsa, çıkışı da yorumlamak çok zor oluyor.

Matplotlib'i metin olarak metne dönüştürmek için eğrileri değil, zorlamak için bir yol var mı?

Şu anda, benim SVG dosyasında bu kod parçaları bakın:

<path d=" M9.8125 72.9062 L55.9062 72.9062 L55.9062 64.5938 L19.6719 
64.5938 L19.6719 43.0156 L54.3906 43.0156 L54.3906 34.7188 L19.6719 
34.7188 L19.6719 8.29688 L56.7812 8.29688 L56.7812 0 L9.8125 0 z " 
id="DejaVuSans-45" /> 

cevap

11

Matplotlibs SVG metin oluşturma matplotlibrc veya kodunda ya yapılandırılabilir. http://matplotlib.org/users/customizing.html Gönderen:

#svg.fonttype : 'path'   # How to handle SVG fonts: 
# 'none': Assume fonts are installed on the machine where the SVG will be viewed. 
# 'path': Embed characters as paths -- supported by most SVG renderers 
# 'svgfont': Embed characters as SVG fonts -- supported only by Chrome, 
#    Opera and Safari 

Bu yazı gömme ne de yol olarak metin oluşturma ne için aşağıdaki kodu çevirir:

import matplotlib.pyplot as plt 
plt.rcParams['svg.fonttype'] = 'none' 
+0

sayesinde iyi çalışıyor. 'Yok' ile svg çıkışım çok daha küçüktür. – Bram

+0

Matplotlib ile bir şey yapmadan önce ayarlanması gereken bu seçeneklerden biri mi? – user1129682

İlgili konular