Gnuplot'ta çubuk grafikleri nasıl çizersiniz?


Yanıtlar:


123

Basit çubuk grafiği:

Çubuk grafiği

set boxwidth 0.5
set style fill solid
plot "data.dat" using 1:3:xtic(2) with boxes

data.dat:

0 label       100
1 label2      450
2 "bar label" 75

Çubuklarınızı farklı bir şekilde şekillendirmek istiyorsanız, aşağıdaki gibi bir şey yapabilirsiniz:

çok renkli çubuk grafiği

set style line 1 lc rgb "red"
set style line 2 lc rgb "blue"

set style fill solid
set boxwidth 0.5

plot "data.dat" every ::0::0 using 1:3:xtic(2) with boxes ls 1, \
     "data.dat" every ::1::2 using 1:3:xtic(2) with boxes ls 2

Her giriş için birden çok çubuk yapmak istiyorsanız:

data.dat:

0     5
0.5   6


1.5   3
2     7


3     8
3.5   1

gnuplot:

set xtics ("label" 0.25, "label2" 1.75, "bar label" 3.25,)

set boxwidth 0.5
set style fill solid

plot 'data.dat' every 2    using 1:2 with boxes ls 1,\
     'data.dat' every 2::1 using 1:2 with boxes ls 2

barchart_multi

Zor olmak ve bazı düzgün gnuplot hileleri kullanmak istiyorsanız:

Gnuplot, renklendirme indeksi olarak kullanılabilen psuedo sütunlarına sahiptir:

plot 'data.dat' using 1:2:0 with boxes lc variable

barchart_multi2

Ayrıca, istediğiniz renkleri seçmek için bir işlev kullanabilirsiniz:

mycolor(x) = ((x*11244898) + 2851770)
plot 'data.dat' using 1:2:(mycolor($0)) with boxes lc rgb variable

barchart_multi3

Not: Örnek görüntülerle aynı etkiyi elde etmek için birkaç başka temel komut eklemeniz gerekecektir.


Birçok uygulama için histogram, özellikle değerleri gruplamak ve istiflemek için çizim stilini kullanmak daha uygundur .
Christoph

@Christoph Merhaba, Bu tür bir grafik için anahtar eklemek istersem? ne yapmalıyım ? Örneğin, mavi çizginin "kış" ve kırmızı çizginin "yaz" olduğunu belirten bir anahtar eklemek istersem
alax

1
@alex Emin değilim, tüm bu örneklerden hangisini kastediyorsunuz: ile lc rgb variablefarklı anahtar girişleriniz olamaz.
Christoph

Her ne sebeple olursa olsun, efsanenin ortaya çıkmasını engellemek için her arsa cümlesinden sonra 'notitle' direktifini kullanmak zorunda kaldım.
chinnychinchin

25
histogram ile 2: xtic (1) kullanarak "data.dat" grafiğini çizin

Burada data.dat formun verilerini içerir

başlık 1
başlık2 3
"uzun başlık" 5

17

Mutlak yeni başlayanlar için, GNUPlot'u bir çubuk grafik oluşturmak için kullanan en üst yanıtı genişletmek istiyorum çünkü yanıtı okudum ve sözdizimi tufanı yüzünden hala kafam karıştı.

GNUplot komutlarından oluşan bir metin dosyası yazarak başlıyoruz. Buna commands.txt diyelim:

set term png
set output "graph.png"
set boxwidth 0.5
set style fill solid
plot "data.dat" using 1:3:xtic(2) with boxes

set term pngGNUplot'u bir .png dosyası çıkaracak şekilde ayarlayacaktır ve çıktı vereceği dosyanın set output "graph.png"adıdır.

Sonraki iki satır oldukça açıklayıcıdır. Beşinci satır çok fazla sözdizimi içerir.

plot "data.dat" using 1:3:xtic(2) with boxes

"data.dat"üzerinde çalıştığımız veri dosyası. 1:3x koordinatları için data.dat sütun 1'i ve y koordinatları için data.dat sütun 3'ü kullanacağımızı belirtir. xtic()x ekseninin numaralandırılmasından / etiketlenmesinden sorumlu olan bir işlevdir. xtic(2)bu nedenle, etiketler için data.dat sütununun 2. sütununu kullanacağımızı belirtir.

"data.dat" şuna benzer:

0 label       100
1 label2      450
2 "bar label" 75

Grafiği çizmek için gnuplot commands.txtterminale girin .



2

Doğrudan gnuplot tarafından sağlanan stil histogramlarını kullanabilirsiniz. Bu, çıktıda iki dosyanız varsa bir örnektir:

set style data histograms
 set style fill solid
 set boxwidth 0.5
 plot "file1.dat" using 5 title "Total1" lt rgb "#406090",\
      "file2.dat" using 5 title "Total2" lt rgb "#40FF00"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.