2016-09-14 14 views
8

मैं एक साजिश में एक टेक्स्ट फ़ील्ड जोड़ रहा हूं। पत्र का आकार निर्धारित करने के लिए मैं fontsize पैरामीटर का उपयोग:अक्ष इकाइयों के मामले में Matplotlib fontsize

import matplotlib.pyplot as plt 
r = plt.Rectangle((2,2), 10, 10, fill = False) 
plt.gca().add_patch(r) 
plt.text(7, 7, 'my rectangle', fontsize = 12, ha='center', va='center') 
plt.axis(xmin = 0, xmax = 14, ymin = 0, ymax = 14) 

मैं पाठ 'मेरी आयत' (y- अक्ष का) उच्च ठीक 2 इकाइयों होना चाहता हूँ। क्या इसे करने का कोई तरीका है?

उत्तर

1

मुझे शक है इस बिल्कुल 2 डेटा इकाइयों है पर उसके बहुत करीब लग रहा है:

import matplotlib.pyplot as plt 
r = plt.Rectangle((2,2), 10, 10, fill = False) 
plt.gca().add_patch(r) 
ymin, ymax = (0, 14) 
plt.axis(xmin = 0, xmax = 14, ymin=ymin, ymax=ymax) 

# Get dimensions of y-axis in pixels 
y1, y2 = plt.gca().get_window_extent().get_points()[:, 1] 

# Get unit scale 
yscale = (y2-y1)/(ymax-ymin) 

# We want 2 of these as fontsize 
fontsize = 2*yscale 
print fontsize, 'pixels' 

txt = plt.text(7, 7, u"\u25AF" + 'my rectangle', fontsize=fontsize, ha='center', va='center') 

plt.savefig('test.png') 

test.png

इस काम करने के लिए जब का आकार बदलने के लिए, आप एक कॉलबैक जोड़ने की आवश्यकता होगी पाने के लिए।

संबंधित मुद्दे