मैं अपनी छवि का आकार कैसे बदलूं, इसलिए यह मुद्रण के लिए उपयुक्त है?
उदाहरण के लिए, मैं A4 पेपर का उपयोग करना चाहूंगा, जिसके आयाम लैंडस्केप ओरिएंटेशन में 8.27 इंच तक 11.7 इंच हैं।
मैं अपनी छवि का आकार कैसे बदलूं, इसलिए यह मुद्रण के लिए उपयुक्त है?
उदाहरण के लिए, मैं A4 पेपर का उपयोग करना चाहूंगा, जिसके आयाम लैंडस्केप ओरिएंटेशन में 8.27 इंच तक 11.7 इंच हैं।
जवाबों:
आपको समय से पहले matplotlib चित्रा और अक्ष वस्तुओं को बनाने की आवश्यकता है, यह निर्दिष्ट करते हुए कि आंकड़ा कितना बड़ा है:
from matplotlib import pyplot
import seaborn
import mylib
a4_dims = (11.7, 8.27)
df = mylib.load_data()
fig, ax = pyplot.subplots(figsize=a4_dims)
seaborn.violinplot(ax=ax, data=df, **violin_options)
sns.lmplot()
height
और aspect
मापदंडों का उपयोग करके सेट किया जाना चाहिए जैसा कि यहां बताया गया है stackoverflow.com/a/51602446/2412831
आप सीबोनल विधि में rc
कुंजी के साथ डिक्शनरी को पास करके भी फिगर का आकार निर्धारित कर सकते हैं :'figure.figsize'
set
import seaborn as sns
sns.set(rc={'figure.figsize':(11.7,8.27)})
अन्य विकल्प का उपयोग करने के हो सकता है figure.figsize
की rcParams
नीचे के रूप में सेट आंकड़ा आकार करने के लिए:
from matplotlib import rcParams
# figure size in inches
rcParams['figure.figsize'] = 11.7,8.27
अधिक विवरण matplotlib प्रलेखन में पाया जा सकता है
.set()
पहले फोन करना होगा.set_style()
आप संदर्भ को poster
मैन्युअल रूप से सेट या सेट कर सकते हैं fig_size
।
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
np.random.seed(0)
n, p = 40, 8
d = np.random.normal(0, 2, (n, p))
d += np.log(np.arange(1, p + 1)) * -5 + 10
# plot
sns.set_style('ticks')
fig, ax = plt.subplots()
# the size of A4 paper
fig.set_size_inches(11.7, 8.27)
sns.violinplot(data=d, inner="points", ax=ax)
sns.despine()
fig.savefig('example.png')
sns.lmplot()
ध्यान दें कि यदि आप सीबोर्न में एक "आंकड़ा स्तर" विधि को पारित करने की कोशिश कर रहे हैं (उदाहरण के लिए lmplot
, catplot
/ factorplot
, jointplot
) तो आप इसका उपयोग कर height
और तर्कों के भीतर निर्दिष्ट कर सकते हैं aspect
।
sns.catplot(data=df, x='xvar', y='yvar',
hue='hue_bar', height=8.27, aspect=11.7/8.27)
Https://github.com/mwaskom/seaborn/issues/488 देखें और इस तथ्य पर अधिक जानकारी के लिए मैटलोट्लिब ऑब्जेक्ट-ओरिएंटेड इंटरफ़ेस का उपयोग करके सीबोर्न के साथ प्लॉटिंग करें कि आंकड़ा स्तर के तरीके एक्सिस विनिर्देशों का पालन नहीं करते हैं।
यह भी काम करेगा।
from matplotlib import pyplot as plt
import seaborn as sns
plt.figure(figsize=(15,16))
sns.countplot(data=yourdata, ...)
मेरे प्लॉट (एक एसएनएस फैक्टरप्लॉट) के लिए प्रस्तावित उत्तर ठीक काम नहीं करता है।
इस प्रकार मैं उपयोग करता हूं
plt.gcf().set_size_inches(11.7, 8.27)
सीबॉर्न के साथ प्लॉट के बाद (ताकि सीबर्न में कुल्हाड़ी को पास करने या आरसी सेटिंग्स को बदलने की कोई आवश्यकता नहीं है)।
python g = sns.FacetGrid(df.set_index('category'), col="id") pyplot.gcf().set_size_inches(11.7, 8.27) g.map(lambda data, color: data.plot.barh(color=color), "count")
sns.FacetGrid
कि गणना की गई मान (सेट द्वारा ) के अनुसार एक आंकड़ा आकार निर्धारित किया जाएगा height
और aspect
सीबॉर्न प्लॉटिंग के बाद सीधे आकृति का आकार बदलना होगा। और प्लॉट की अन्य बारीक ट्यूनिंग आकृति का आकार बदलने के बाद हो सकती है
"आंकड़ा स्तर" विधियों के बारे में एल्ज़ उत्तर के अलावा, जो मल्टी-प्लॉट ग्रिड ऑब्जेक्ट लौटाते हैं, यह आंकड़ा ऊंचाई और चौड़ाई को स्पष्ट रूप से निर्धारित करना संभव है (जो पहलू अनुपात का उपयोग किए बिना) निम्नलिखित दृष्टिकोण का उपयोग कर रहा है:
import seaborn as sns
g = sns.catplot(data=df, x='xvar', y='yvar', hue='hue_bar')
g.fig.set_figwidth(8.27)
g.fig.set_figheight(11.7)
set_figwidth
और set_figheight
ग्रिड वस्तुओं के लिए अच्छी तरह से काम करते हैं। >>> इंपोर्ट सीबॉर्न >>> इंपोर्ट मेटप्लोटलीबहुम्प्लॉट पाइलट के रूप में >>> टिप्स = सीबोर्न.लोड_डैटसेट ("टिप्स") >>> जी = सीबॉर्न.फैसेटग्रिड (टिप्स, कॉल = इस समय, पंक्ति = "स्मोकर") >>> जी = g.map (pyplot.hist, "total_bill") >>> g.fig.set_figwidth (10) >>> g.fig.set_figheight (10)
पॉल एच और जे। ली के शीर्ष उत्तर सभी प्रकार के समुद्री जीवों के लिए काम नहीं करते हैं। के लिए FacetGrid
प्रकार (उदाहरण के लिए sns.lmplot()
), का उपयोग size
और aspect
पैरामीटर।
Size
पहलू अनुपात को बनाए रखते हुए ऊंचाई और चौड़ाई दोनों को बदलता है।
Aspect
केवल चौड़ाई को बदलता है, ऊंचाई को स्थिर रखता है।
आप हमेशा इन दो मापदंडों के साथ खेलकर अपना इच्छित आकार प्राप्त कर सकते हैं।