2014-04-27 3 views
5

मेरे पास अलग-अलग एक्स मानों के लिए अंक के सेट के साथ एक साजिश है: x = 0.5 के लिए 5 अंक, x = 0.6 के लिए 5 अंक, ... x = 1.4 के लिए 5 अंक, x = 1.6 के लिए 5 अंक।GNUPlot: मैं प्रत्येक एक्स मान के लिए बॉक्सप्लॉट कैसे बना सकता हूं?

अब मैं उन एक्स मानों में से प्रत्येक के लिए एक बॉक्सप्लॉट बनाना चाहता हूं। लेकिन किसी भी तरह से मेरे सभी बॉक्सप्लॉट x = 0.5 पर हैं। मैं बॉक्स एक्सप्लोर को सही एक्स मान पर बनाना चाहता हूं। 2 एक्स मानों के बीच की दूरी अलग हो सकती है। मेरे वर्तमान एक्स मान 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.2, 1.4 और 1.6 हैं, लेकिन वे एक अलग साजिश के लिए अलग भी हो सकते हैं। मुझे यह कैसे करना है?

यह मेरा अंक के लिए gnuplot स्क्रिप्ट: https://dl.dropboxusercontent.com/u/26464165/Points.gnu

यह मेरा boxplots के लिए gnuplot स्क्रिप्ट: https://dl.dropboxusercontent.com/u/26464165/Boxplots.gnu

अपना समय के लिए धन्यवाद!

+0

नहीं, मैं boxplots चाहते हैं। मैं यह दिखाना चाहता हूं कि वाई-मान प्रत्येक एक्स-वैल्यू के लिए कितना भिन्न होता है। यह विभिन्न परीक्षण रनों के परिणामों के बारे में है। – John

उत्तर

8

आपको बॉक्सप्लॉट के लिए अपना डेटा पुनर्व्यवस्थित करना होगा। आंकड़े पूर्ण कॉलम पर गणना की जाती हैं। तो, आप अपने डेटा को पुनर्व्यवस्थित करना होगा जैसे:

set style fill solid 0.25 border -1 
set style boxplot outliers pointtype 7 
set style data boxplot 

set title 'My Plot' font 'Arial,14'; 
set xtics ('1.0' 1, '1.2' 2, '1.4' 3) 
plot for [i=1:3] 'data.txt' using (i):i notitle 

4.6.4 के साथ परिणाम है::

enter image description here

इसके बजाय लेखन के

# 1.0 1.2 1.4 ... 
2.2 2.2 3.06 
2.0 2.46 2.93 
2.2 2.46 3.06 
2.0 2.4 2.8 
1.73 2.33 2.8 

तो फिर तुम इसके साथ प्लॉट कर सकते हैं xtics मैन्युअल रूप से, आप उन्हें निकालें (यूनिक्स कमांडलाइन टूल्स के साथ), जैसे दिखाए गए उदाहरण https://stackoverflow.com/a/10799204/2604213 में:

header = "`head -1 data.txt | cut -b 2-`" 
set for [i=1:words(header)] xtics (word(header, i) i) 
+0

सहायता के लिए धन्यवाद। मेरी सबसे बड़ी समस्या जिस तरह से मेरा डेटा व्यवस्थित किया गया था। मैंने अपना डेटा पुन: व्यवस्थित कर लिया है और मैं इसे इस तरह साजिश कर रहा हूं: 'प्लॉट' - '(0.5): 1,' - '(0.6): 1,' - 'का उपयोग करके (0.7): 1,' - ' (0.8): 1, '-' का उपयोग करके (0.9): 1, '-' का उपयोग कर (1.0): 1, '-' (1.2): 1, '-' का उपयोग कर (1.4): 1, '-' (1.6): 1; ' – John

+0

ओह हाँ, अगर आप संख्यात्मक अक्ष पर पदों को रखना चाहते हैं तो यह तरीका है। – Christoph

1

क्रिस्टोफ का जवाब अगर आप समय से आगे स्तरों की संख्या (कॉलम) और उनके नाम (xtics) पता है ठीक है। अन्यथा, http://soc.if.usp.br/manual/gnuplot-doc/htmldocs/boxplot.htmlusing कथन (using x:data:width:level) के चौथे क्षेत्र के साथ समाधान प्रदान करता है।

आप एक साथ कारक कॉलम हर गृहीत के लिए स्तर का परिचय देते हुए एक स्तंभ में अपने सभी डेटा के शब्दों में कहें,:

2.2 1.0 
2.2 1.2 
3.06 1.4 
2.0 1.0 
... 

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

संशोधित क्रिस्टोफ की स्क्रिप्ट,

set style fill solid 0.25 border -1 
set style boxplot outliers pointtype 7 
set style data boxplot 

plot "data.txt" using (1):1:(0.5):2 

निम्नलिखित उत्पन्न करेगा:

Boxplot generated with GNUPlot using a factor column

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

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