我是新使用Chart::Clicker
並且無法創建直方圖。使用下面的代碼:圖中的直方圖:: Clicker
#!/usr/bin/perl -w
use strict;
use Gtk3 -init;
use Chart::Clicker;
use Chart::Clicker::Renderer::Bar;
my $data = {
Alpha => 3,
Bravo => 1,
Charlie => 4,
Delta => 1,
Echo => 5,
};
my $counter = 0;
my $chart = Chart::Clicker->new;
my $context = $chart->get_context('default');
$context->range_axis->range(Chart::Clicker::Data::Range->new(lower => 0));
for my $value (sort keys %$data) {
$chart->add_data($value, {$counter++ => $data->{$value}});
}
my $xaxis = Chart::Clicker::Axis->new(orientation => 'horizontal', position => 'bottom');
$xaxis->{tick_values} = [0 .. $counter-1];
$xaxis->{tick_labels} = [sort keys %$data];
$context->{domain_axis} = $xaxis;
$chart->set_renderer(Chart::Clicker::Renderer::Bar->new);
$chart->legend->visible(0);
$chart->draw;
my $win = Gtk3::Window->new;
my $img = Gtk3::Image->new_from_surface($chart->driver->surface);
$win->add($img);
$win->signal_connect('delete-event' => sub{Gtk3::main_quit});
$win->show_all;
Gtk3::main;
產生以下輸出:
我要的是更多的東西像這樣(圖形編輯):
我不不關心x軸標籤上的顏色。雖然我更喜歡酒吧按照我指定的順序,但我並不關心訂單。
編輯:
試圖@鮑羅廷的建議產生以下:
這是更好,但並不完全正確。現在有25個數據點,但是20個是零,因此它們不顯示,但它們仍佔用X軸上的空間。左邊兩個被切斷,右邊兩個被切斷(在這個圖表中,缺失的零點恰好爲零,所以它不像其他人那樣糟糕)。
我試着在每個方向上延伸X軸一個刻度,所以沒有任何東西會被切斷,但會導致數據值重疊。我改變了零個值不爲零,說明發生了什麼:
一個有趣的想法。這可以說是更好,但仍然不正確。我使用屏幕截圖來更新問題,當我嘗試時會發生什麼。 – TheAmigo