2014-06-17 14 views
5

Hãy xem xét ví dụ đơn giản này:Matplotlib: đảm bảo mẫu dash đầy đủ xuất hiện trong truyền thuyết

#setup figure 
import matplotlib.pyplot as plt 
import pylab 
import math 
import numpy as np 
#output control 
fig_width_pt = 345.0 # Get this from LaTeX using \showthe\columnwidth 
inches_per_pt = 1.0/72.27    # Convert pt to inch 
golden_mean = (math.sqrt(5)-1.0)/2.0   # Aesthetic ratio 
fig_width = fig_width_pt*inches_per_pt # width in inches 
fig_height = fig_width*golden_mean  # height in inches 
fig_size = [fig_width,fig_height] 
params = {'backend': 'ps', 
     'axes.labelsize': 10, 
     'text.fontsize': 10, 
     'legend.fontsize': 8, 
     'xtick.labelsize': 8, 
     'ytick.labelsize': 8, 
     'text.usetex': True, 
     'figure.figsize': fig_size, 
     'figure.dpi': 1000, 
     'savefig.dpi': 1000} 
pylab.rcParams.update(params) 

plt.figure().add_subplot(1,1,1) 
#plot some lines 
dashes = [(None, None), [2, 2], [7, 4, 3, 4]] 
titles = ["really long title one", "long title the second", "an even longer title, am I right?"] 

for i in range(3): 
    x = np.arange(i, i + np.pi/2.0, 0.01) 
    y = np.sin(x) + i 
    line,= plt.plot(x, y, label = titles[i]) 
    line.set_dashes(dashes[i]) 

plt.legend() 
plt.show() 

Chạy chương trình đơn giản này với 'legend.fontsize': 8 sản xuất this. Lưu ý rằng kiểu dấu gạch ngang cho dòng dấu gạch ngang (phần thứ ba trong chú giải) rất khó diễn giải. Nếu bạn phóng to, bạn sẽ thấy dấu chấm nhỏ màu đen cho thấy nó tương ứng với hình, nhưng điều này hầu như không lý tưởng.

Tôi đã có thể khắc phục điều này bằng cách thay đổi chú thích phông chữ thành mười, dẫn đến this, nhưng điều này quá lớn so với con số thực tế của tôi.

Bất kỳ suy nghĩ nào về cách tôi có thể đảm bảo rằng toàn bộ kiểu dáng/dấu gạch ngang được hiển thị?

Trả lời

9

Bạn có thể thay đổi độ dài của các dòng trong chú giải (không thay đổi phông chữ) bằng cách đặt từ khóa handlelength. Hãy thử

plt.legend(handlelength=3) 
+0

Hoạt động như một sự quyến rũ. Cảm ơn! – arghdos

Các vấn đề liên quan