2014-12-09 11 views
5

Bu grafiği gördüm ve merak uğruna şekildeki gibi enter image description hereÇoklu y eksenleri nasıl çizilir?

çok teşekkür ederiz birden y ekseni ile figürü çizmek mümkün olup olmadığını merak ediyorum sadece!

cevap

4

andyras yazdığı gibi, yalnızca iki veri kümeniz varsa ikinci y eksenini kullanabilirsiniz. Bu durumda, ayrıca birden fazla veri kümesi çizdirmek istiyorsanız

set ytics nomirror # remove the tickmarks of the left ayis on the right side 
set y2tics   # make the right y-axis 'visible' 

, ben multiplot kullanmayı öneririm gerekir. Birden fazla bağımsız grafiği kaplayabilir ve her biri için y eksenine benzersiz bir ofset koyabilirsiniz. Ancak, y-tikleri ve y-tick konumlarının aynı olmasına dikkat etmelisiniz.

Plot:

enter image description here

(burada anahtarın umursamadı, bu yine ihtiyacı ayarı)

Kodu:

set multiplot 


set xrange[0:10] 

# We need place to the left, so make the left margin 30% of screen 
set lmargin screen 0.3 

##### first plot 

set ytics 0.4 
set yrange[-1.2:1.2] 

set ylabel "Voltage" textcolor rgb "red" 

plot sin(x) 


##### Second plot 

set ytics 1 
set yrange[-3:3] 

set ytics offset -8, 0 
set ylabel "Current" offset -8, 0 textcolor rgb "green" 

plot 3*cos(x) linecolor 2 

##### Third plot 

set ytics 0.5 
set yrange[-1.5:1.5] 


set ytics offset -16, 0 
set ylabel "Power" offset -16, 0 textcolor rgb "blue" 
plot 3*sin(x)*cos(x) linecolor 3 

unset multiplot 
+0

Teşekkürler Sweber! Ama bu ofset komutu hala kafa karıştırıcı. Ofset -8 veya -16 için referans çizgisi nedir? – kuki

+0

Varsayılan ofset 0'dır, bu nedenle referans çizimimdeki voltaj eksenidir. Bunu belirtirseniz, bir birim de verebilirsiniz, örn. ekranın kapalı olduğu ekran -0.2, 0 'yani pencere genişliğinin% 20'si solda. Ekran olmadan, karakter genişliği/yüksekliği gibi bir şey aldığını düşünüyorum. Karakter boyutu nadirdir, ancak genellikle yararlı bir birimdir. – sweber

+0

Açıklama için teşekkürler Sweber! – kuki

2

Evet, ücretsiz olarak iki y eksenine sahip olabilirsiniz, ör.

plot 'data1.dat' using 1:($2/MAX_1), \ 
    'data2.dat' using 1:($2/MAX_2), \ 
    'data3.dat' using 1:($s/MAX_3) 

değişkenleri:

plot x, x**2 axes x1y2 

axes şartname ikiden fazla şey şeyleri kendiniz normalleştirmek için kullandığınız aynı y eksenleri üzerinde çizilen istiyorsanız vs. x1y1, x2y1, üzerine koymak sağlar MAX_X, gnuplot 4.6+ içinde stats komutu kullanılarak önceden hesaplanabilir veya bunları manuel olarak koyabilirsiniz.

+0

Teşekkür Andyras! – kuki