Làm thế nào để bạn vẽ biểu đồ thanh trong gnuplot?


Câu trả lời:


122

Biểu đồ thanh đơn giản:

thanh biểu đồ

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

Nếu bạn muốn tạo kiểu khác cho các thanh của mình, bạn có thể làm như sau:

biểu đồ thanh nhiều màu

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

Nếu bạn muốn thực hiện nhiều thanh cho mỗi mục nhập:

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

Nếu bạn muốn trở nên khôn lanh và sử dụng một số thủ thuật gnuplot gọn gàng:

Gnuplot có các cột psuedo có thể được sử dụng làm chỉ mục để tô màu:

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

barchart_multi2

Hơn nữa, bạn có thể sử dụng một chức năng để chọn màu bạn muốn:

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

barchart_multi3

Lưu ý: bạn sẽ phải thêm một số lệnh cơ bản khác để có được hiệu ứng giống như các hình ảnh mẫu.


Đối với nhiều ứng dụng, việc sử dụng histogramkiểu vẽ đồ thị sẽ thuận tiện hơn , đặc biệt là để nhóm và xếp chồng các giá trị.
Christoph

@Christoph Xin chào, Nếu tôi muốn thêm khóa cho loại biểu đồ này? tôi nên làm gì ? Ví dụ Nếu tôi muốn thêm một chìa khóa mà nói dòng màu xanh là "mùa đông" và dòng màu đỏ là "mùa hè"
alex

1
@alex Không chắc, ý bạn là ví dụ nào: lc rgb variablebạn không thể có các mục nhập khóa khác nhau.
Christoph

Vì bất cứ lý do gì, tôi phải sử dụng chỉ thị 'notitle' sau mỗi điều khoản cốt truyện để thúc đẩy huyền thoại sắp xuất hiện.
chinnychinchin

25
vẽ biểu đồ "data.dat" bằng 2: xtic (1) với biểu đồ

Ở đây data.dat chứa dữ liệu dạng

tiêu đề 1
tiêu đề2 3
"dài tiêu đề" 5

17

Tôi chỉ muốn mở rộng câu trả lời trên cùng, sử dụng GNUPlot để tạo biểu đồ thanh, dành cho những người mới bắt đầu tuyệt đối vì tôi đã đọc câu trả lời và vẫn còn bối rối vì quá nhiều cú pháp.

Chúng ta bắt đầu bằng cách viết một tệp văn bản của các lệnh GNUplot. Hãy gọi nó là lệnh .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 pngsẽ đặt GNUplot xuất ra tệp .png và set output "graph.png"là tên của tệp mà nó sẽ xuất ra.

Hai dòng tiếp theo khá tự giải thích. Dòng thứ năm chứa rất nhiều cú pháp.

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

"data.dat"là tệp dữ liệu mà chúng tôi đang vận hành. 1:3cho biết chúng tôi sẽ sử dụng cột 1 của data.dat cho tọa độ x và cột 3 của data.dat cho tọa độ y. xtic()là một hàm chịu trách nhiệm đánh số / dán nhãn cho trục x. xtic(2), do đó, chỉ ra rằng chúng tôi sẽ sử dụng cột 2 của data.dat cho các nhãn.

"data.dat" trông giống như sau:

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

Để vẽ biểu đồ, hãy nhập gnuplot commands.txtvào thiết bị đầu cuối.



2

Bạn có thể trực tiếp sử dụng biểu đồ kiểu do gnuplot cung cấp. Đây là một ví dụ nếu bạn có hai tệp ở đầu ra:

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"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.