คุณพล็อตแผนภูมิแท่งใน gnuplot ได้อย่างไร?


คำตอบ:


123

กราฟแท่งอย่างง่าย:

กราฟแท่ง

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

หากคุณต้องการจัดสไตล์บาร์ของคุณให้แตกต่างออกไปคุณสามารถทำสิ่งต่อไปนี้

กราฟแท่งหลายสี

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

หากคุณต้องการทำหลายแท่งสำหรับแต่ละรายการ:

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

หากคุณต้องการที่จะยุ่งยากและใช้เทคนิค gnuplot ที่เป็นระเบียบ:

Gnuplot มีคอลัมน์ psuedo ที่สามารถใช้เป็นดัชนีสี:

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

barchart_multi2

นอกจากนี้คุณสามารถใช้ฟังก์ชันเพื่อเลือกสีที่คุณต้องการ:

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

barchart_multi3

หมายเหตุ: คุณจะต้องเพิ่มคำสั่งพื้นฐานอื่น ๆ อีกสองสามคำเพื่อให้ได้เอฟเฟกต์เช่นเดียวกับภาพตัวอย่าง


สำหรับแอปพลิเคชันจำนวนมากการใช้histogramรูปแบบการลงจุดจะสะดวกกว่าโดยเฉพาะการจัดกลุ่มและการซ้อนค่า
Christoph

@Christoph สวัสดีถ้าฉันต้องการเพิ่มคีย์สำหรับกราฟประเภทนี้? ฉันควรทำอย่างไรดี ? ตัวอย่างเช่นถ้าฉันต้องการเพิ่มคีย์ที่บอกว่าเส้นสีน้ำเงินคือ "ฤดูหนาว" และเส้นสีแดงคือ "ฤดูร้อน"
อเล็กซ์

1
@alex ไม่แน่ใจว่าตัวอย่างใดทั้งหมดที่คุณหมายถึง: lc rgb variableคุณไม่สามารถมีรายการคีย์อื่นได้
Christoph

ไม่ว่าจะด้วยเหตุผลใดก็ตามฉันต้องใช้คำสั่ง 'notitle' หลังส่วนคำสั่งของแต่ละพล็อตเพื่อที่จะบีบตำนานไม่ให้เกิดขึ้น
chinnychinchin

25
พล็อต "data.dat" โดยใช้ 2: xtic (1) พร้อมฮิสโตแกรม

ที่นี่ data.dat มีข้อมูลของแบบฟอร์ม

ชื่อเรื่อง 1
title2 3
"ชื่อเรื่องยาว" 5

17

ฉันต้องการขยายคำตอบด้านบนซึ่งใช้ GNUPlot ในการสร้างกราฟแท่งสำหรับผู้เริ่มต้นอย่างแท้จริงเพราะฉันอ่านคำตอบแล้วและยังคงสับสนจากความหลากหลายของไวยากรณ์

เราเริ่มต้นด้วยการเขียนไฟล์ข้อความของคำสั่ง GNUplot ให้เรียกมันว่า commands.txt:

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 pngจะตั้งค่า GNUplot ให้ส่งออกไฟล์. png และset output "graph.png"เป็นชื่อของไฟล์ที่จะส่งออกไป

สองบรรทัดถัดไปค่อนข้างอธิบายตนเอง บรรทัดที่ห้ามีไวยากรณ์จำนวนมาก

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

"data.dat"คือไฟล์ข้อมูลที่เราใช้งานอยู่ 1:3บ่งบอกว่าเราจะใช้คอลัมน์ 1 ของ data.dat สำหรับพิกัด x และคอลัมน์ 3 ของ data.dat สำหรับพิกัด y xtic()เป็นฟังก์ชันที่รับผิดชอบในการกำหนดหมายเลข / การติดฉลากแกน x xtic(2)ดังนั้นบ่งชี้ว่าเราจะใช้คอลัมน์ 2 ของ data.dat สำหรับป้ายกำกับ

"data.dat" มีลักษณะดังนี้:

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

ในการลงจุดกราฟให้ป้อนgnuplot commands.txtในเทอร์มินัล



2

คุณสามารถใช้ฮิสโตแกรมสไตล์ที่ gnuplot ให้มาได้โดยตรง นี่คือตัวอย่างหากคุณมีสองไฟล์ในเอาต์พุต:

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"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.