हिस्टोग्राम gnuplot क्लस्टर / स्टैक किया गया मिश्रण

वोट
0

मैं एक हिस्टोग्राम 4 स्तंभों में consisiting है। उन्हें जोड़े में क्लस्टर के लिए दो संकुल दो खड़ी colums से बना समूह के लिए मैं करना चाहते हैं।

set terminal epslatex standalone color size 4.0in,3.0in background rgb white
set output 'hist.tex'
set boxwidth 0.5 absolute
unset key
set style fill  solid 1.00 border lt -1
set style increment default
set style histogram rowstacked title textcolor lt -1
set style data histograms
set yran [0:10]
plot for [COL=2:4] 'data' using COL title columnheader

मेरी 'डेटा' फ़ाइल के साथ संगठित रूप में इस प्रकार है

c1 c2 c3 c4
M1 5 1 1
M1 1 3 5
M2 1 1 1
M2 2 2 2

मैं सभी स्तंभों को एक दूसरे से अलग कर दिया साथ सिर्फ एक सरल खड़ी चित्र प्राप्त

यहाँ

02/12/2019 को 23:52
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

निम्नलिखित आगे फेरबदल के लिए एक प्रारंभिक बिंदु हो सकता है। मैं इसे सामान्य रखने के लिए, ऐसा है कि आप आसानी से अधिक स्तंभों या पंक्तियों में जोड़ सकते हैं की कोशिश की।

अपने कोड में आप स्तंभ मान "मैन्युअल" संक्षेप कर रहे हैं $2+$3+$4। वहाँ निश्चित रूप से "स्वचालित रूप से" कॉलम योग के तरीके हैं। लेकिन, मुझे, क्योंकि मैं यह आसान पाया अपने आप अपने डेटा स्थानांतरित करने के लिए अनुमति दी। मुझे पता है अगर आप इसके साथ रह सकते हैं करते हैं। चूंकि gnuplot कोई पक्षांतरित कार्य है, आप या तो यह अपने आप को लागू करने या बाहरी सॉफ्टवेयर का उपयोग करने के लिए है। उत्तरार्द्ध, मैं आमतौर पर मंच आजादी की वजह से बचने की कोशिश। मुझे लगता है कि वहाँ भी अपने मूल डेटा के लिए एक ही भूखंड करने के लिए एक तरीका है।

मैं साजिश रचने शैली पसंद करते हैं with boxxyerrorबजाय with boxesजो हमेशा शून्य से शुरू कर रहा है। वास्तव में, पिछले साजिश आदेश कुछ भी नहीं की साजिश रचने लेकिन सिर्फ किसी भी तरह कथा हो रही है। यह अभी भी करने से इनकी है। एक अतिरिक्त घोषणा जोड़ा जा सकता है जो आपको यह बताती है ढेर Data1 है और जो Data2 है।

कोड:

### Histogram stacked and grouped
reset session

$Data1 <<EOD
area  "ex 1"  "ex 2"  "ex 3"
par1  0       0       0.119
par2  0.0211  0.0302  0
par3  0.0078  0.0139  0.0169
EOD

$Data2 <<EOD
nr    "ex 1"  "ex 2"  "ex 3"
par1  0       0       0.211
par2  0.0233  0.0302  0
par3  0.0083  0.0151  0.0173
EOD

set key top left
set style fill solid border -1

Cols = 3
Groups = 2
GroupGap = 0.2
BoxScale = 0.9
BoxWidth = (1.0-GroupGap)/Groups
Offset(g,i) = i-1.5+GroupGap/2.0 + BoxWidth/2 +(g-1)*BoxWidth

myXtic(i) = columnhead(i)
BoxL(g,i) = Offset(g,i)-BoxWidth/2.*BoxScale
BoxR(g,i) = Offset(g,i)+BoxWidth/2.*BoxScale
set xrange [0.5:Cols+0.5]

array myPalette[6] = [0xff0000, 0x00ff00, 0x0000ff, 0xffaaaa, 0xaaffaa, 0xaaaaff]
myColors(n) = myPalette[n+1+(g-1)*3]

set table $Legend
    plot $Data1 u (strcol(1)) w table
unset table

plot \
    for [i=2:Cols+1] $Data1 u (g=1,i-1):(int($0)?sum:sum=0):\
      (BoxL(g,i)):(BoxR(g,i)):(sum):(sum=sum+column(i)):(myColors($0)) \
      skip 1 w boxxy lc rgb var not, \
    for [i=2:Cols+1] $Data2 u (g=2,i-1):(int($0)?sum:sum=0):\
      (BoxL(g,i)):(BoxR(g,i)):(sum):(sum=sum+column(i)):(myColors($0)) \
      skip 1 w boxxy lc rgb var not, \
    for [i=2:|$Legend|] $Data1 u (g=1,i-1):(NaN):(myColors(i-2)): \
      xtic(columnhead(i)) w boxes lc rgb var ti word($Legend[i],1)
### end of code

परिणाम:

यहाँ छवि विवरण दर्ज

05/12/2019 को 17:58
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more