2011-08-19 7 views
190

के साथ किंवदंती आकार को कैसे बदलें: यहां सरल प्रश्न: मैं छोटे होने के लिए matplotlib.pyplot का उपयोग करके अपने पौराणिक कथा का आकार प्राप्त करने की कोशिश कर रहा हूं (यानी, पाठ छोटा होना चाहिए)। कोड मैं उपयोग कर रहा हूँ कुछ इस तरह चला जाता है:matplotlib.pyplot

plot.figure() 
plot.scatter(k, sum_cf, color='black', label='Sum of Cause Fractions') 
plot.scatter(k, data[:, 0], color='b', label='Dis 1: cf = .6, var = .2') 
plot.scatter(k, data[:, 1], color='r', label='Dis 2: cf = .2, var = .1') 
plot.scatter(k, data[:, 2], color='g', label='Dis 3: cf = .1, var = .01') 
plot.legend(loc=2) 

उत्तर

338

आप prop कीवर्ड समायोजित करके किंवदंती के लिए एक व्यक्तिगत फ़ॉन्ट आकार सेट कर सकते हैं।

plot.legend(loc=2, prop={'size': 6}) 

यह matplotlib.font_manager.FontProperties गुणों के अनुरूप कीवर्ड का एक शब्दकोश लेता है।

कीवर्ड तर्क: documentation for legend देखें

prop: [ None | FontProperties | dict ] 
    A matplotlib.font_manager.FontProperties instance. If prop is a 
    dictionary, a new instance will be created with prop. If None, use 
    rc settings. 

यह संस्करण 1.2.1 के रूप में, भी संभव है, कीवर्ड fontsize उपयोग करने के लिए।

+1

है क्या आप मुझे बता सकते हैं कि मुझे 'plot.rcParams.update' के बारे में विस्तार कहां मिल सकता है? – haccks

39

यह

import pylab as plot 
params = {'legend.fontsize': 20, 
      'legend.handlelength': 2} 
plot.rcParams.update(params) 

क्या करना चाहिए तो फिर साजिश बाद में करते हैं।

अन्य आरसीपीआरएम्स का एक टन है, उन्हें matplotlibrc फ़ाइल में भी सेट किया जा सकता है।

यह भी संभवतः आप इसे matplotlib.font_manager.FontProperties उदाहरण पास कर सकते हैं लेकिन मुझे नहीं पता कि यह कैसे करना है। -> यान का जवाब देखें।

+1

या 'matplotlib.rc ('कथा', fontsize = 0.5, = 2 linewidth)' – Eric

+1

कि '' बजाय legend.linewidth' –

+0

सदस्य get_default_size legend.handlelength' किया जाना चाहिए() की FontManager डिफ़ॉल्ट आकार देता है। मेरे लिए यह 12 –

4

मेरे इंस्टॉल पर, फ़ॉन्टप्रॉपर्टीज केवल टेक्स्ट आकार बदलती है, लेकिन यह अभी भी बहुत बड़ी और दूरी से बाहर है। मुझे pyplot.rcParams: legend.labelspacing में एक पैरामीटर मिला, जिसे मैं अनुमान लगा रहा हूं फ़ॉन्ट आकार के एक अंश पर सेट है। मैं

pyplot.rcParams.update({'legend.labelspacing':0.25}) 

के साथ बदल दिया है मुझे यकीन है कि कैसे pyplot.legend कार्य करने के लिए यह निर्दिष्ट करने के लिए नहीं कर रहा हूँ -

prop={'labelspacing':0.25} 

या

prop={'legend.labelspacing':0.25} 

गुजर एक त्रुटि के साथ वापस आता है ।

+6

बस 'किंवदंती (लेबलस्पेसिंग = 0.25) देकर मेरे लिए काम किया। – Adobe

12

किंवदंती आकार को समायोजित करने के लिए कई सेटिंग्स हैं। मुझे सबसे उपयोगी लगता है:

  • लेबलस्पेसिंग: जो फ़ॉन्ट आकार के गुणकों में लेबल प्रविष्टियों के बीच अंतर सेट करता है। उदाहरण के लिए 10 बिंदु फ़ॉन्ट के साथ, legend(..., labelspacing=0.2) प्रविष्टियों के बीच अंतर को 2 अंक तक कम कर देगा। मेरे इंस्टॉल पर डिफ़ॉल्ट लगभग 0.5 है।
  • प्रोप: जो फ़ॉन्ट आकार, आदि के पूर्ण नियंत्रण की अनुमति देता है। आप legend(..., prop={'size':8}) का उपयोग करके 8 पॉइंट फ़ॉन्ट सेट कर सकते हैं। मेरे इंस्टॉल पर डिफ़ॉल्ट लगभग 14 अंक है।

इसके अलावा, legend documentation सूचियों सहित अन्य गद्दी और रिक्ति अनेक पैरामीटर: borderpad, handlelength, handletextpad, borderaxespad, और columnspacing। ये सभी फोंटसाइज के गुणकों में लेबलस्पेसिंग और क्षेत्र के समान रूप का पालन करते हैं।

इन मानों को matplotlibrc file का उपयोग करके सभी आंकड़ों के लिए डिफ़ॉल्ट के रूप में भी सेट किया जा सकता है।

26

वहाँ भी कुछ बिंदुओं के आकार से fontsizes नाम है, अलग कर रहे हैं:

xx-small 
x-small 
small 
medium 
large 
x-large 
xx-large 

उपयोग:

pyplot.legend(loc=2, fontsize = 'x-small') 
16

का उपयोग कर import matplotlib.pyplot as plt

विधि 1: fontsize निर्दिष्ट जब बुला किंवदंती (दोहराव)

plt.legend(fontsize=20) # using a size in points 
plt.legend(fontsize="x-large") # using a named size 

इस विधि के साथ आप सृजन पर प्रत्येक किंवदंती के लिए फोंटिज़ सेट कर सकते हैं (आपको विभिन्न फ़ॉन्ट्स के साथ कई किंवदंतियों की अनुमति देता है)। हालांकि, जब भी आप एक किंवदंती बनाते हैं तो आपको मैन्युअल रूप से सबकुछ टाइप करना होगा।

(नोट: @ Mathias711 सूचीबद्ध उसके जवाब में उपलब्ध नामित fontsizes)

विधि 2: यदि आप डिफ़ॉल्ट कथा सेट rcParams में fontsize (सुविधाजनक) इस पद्धति से

plt.rc('legend',fontsize=20) # using a size in points 
plt.rc('legend',fontsize='medium') # using a named size 

निर्दिष्ट फोंटनाइज, और सभी किंवदंतियों का स्वचालित रूप से तब तक उपयोग किया जाएगा जब तक आप अन्यथा विधि 1 का उपयोग नहीं करते हैं। इसका मतलब है कि आप अपने कोड की शुरुआत में अपने पौराणिक कथाओं को सेट कर सकते हैं, और प्रत्येक व्यक्तिगत किंवदंती के लिए इसे सेट करने की चिंता न करें।

यदि आप नामित आकार का उपयोग करते हैं उदा। 'medium', तो पौराणिक पाठ rcParams में वैश्विक font.size के साथ स्केल करेगा। बदलने के लिए font.size उपयोग plt.rc(font.size='medium')

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