Gnuplot 4.6.5
我想绘制直方图。
我在这里尝试了演示:http://gnuplot.sourceforge.net/demo/histograms.2.gnu和一个单独的日期文件:https://dl.dropboxusercontent.com/u/45318932/immigration.dat。它起作用了:
但是,当我尝试将单独的数据文件作为内联数据放入脚本文件时:
# set terminal pngcairo transparent enhanced font "arial,10" fontscale 1.0 size 500, 350
# set output 'histograms.2.png'
set boxwidth 0.9 absolute
set style fill solid 1.00 border lt -1
set key inside right top vertical Right noreverse noenhanced autotitles nobox
set style histogram clustered gap 1 title offset character 0, 0, 0
set datafile missing '-'
set style data histograms
set xtics border in scale 0,0 nomirror rotate by -45 offset character 0, 0, 0 autojustify
set xtics norangelimit font ",8"
set xtics ()
set title "US immigration from Northern Europe\nPlot selected data columns as histogram of clustered boxes"
set yrange [ 0.00000 : 300000. ] noreverse nowriteback
i = 22
plot '-' using 6:xtic(1) ti col, '' u 12 ti col, '' u 13 ti col, '' u 14 ti col
# IMMIGRATION BY REGION AND SELECTED COUNTRY OF LAST RESIDENCE
#
Region Austria Hungary Belgium Czechoslovakia Denmark France Germany Greece Ireland Italy Netherlands Norway Sweden Poland Portugal Romania Soviet_Union Spain Switzerland United_Kingdom Yugoslavia Other_Europe TOTAL
1891-1900 234081 181288 18167 - 50231 30770 505152 15979 388416 651893 26758 95015 226266 96720 27508 12750 505290 8731 31179 271538 - 282 3378014
1901-1910 668209 808511 41635 - 65285 73379 341498 167519 339065 2045877 48262 190505 249534 - 69149 53008 1597306 27935 34922 525950 - 39945 7387494
1911-1920 453649 442693 33746 3426 41983 61897 143945 184201 146181 1109524 43718 66395 95074 4813 89732 13311 921201 68611 23091 341408 1888 31400 4321887
1921-1930 32868 30680 15846 102194 32430 49610 412202 51084 211234 455315 26948 68531 97249 227734 29994 67646 61742 28958 29676 339570 49064 42619 2463194
1931-1940 3563 7861 4817 14393 2559 12623 144058 9119 10973 68028 7150 4740 3960 17026 3329 3871 1370 3258 5512 31572 5835 11949 377566
1941-1950 24860 3469 12189 8347 5393 38809 226578 8973 19789 57661 14860 10100 10665 7571 7423 1076 571 2898 10547 139306 1576 8486 621147
1951-1960 67106 36637 18575 918 10984 51121 477765 47608 43362 185491 52277 22935 21697 9985 19588 1039 671 7894 17675 202824 8225 16350 1325727
1961-1970 20621 5401 9192 3273 9201 45237 190796 85969 32966 214111 30606 15484 17116 53539 76065 3531 2465 44659 18453 213822 20381 11604 1124492
e
以下是修改后的脚本:https://dl.dropboxusercontent.com/u/45318932/histograms.plt
现在它确实可以正常工作,只显示丹麦的结果:
Gnuplot终端中有三行相同的警告:
"C:\Documents and Settings\leoking\My Documents\temp\histograms.plt", line 27: warning: Skipping data file with no valid points
能够为我使用内联数据非常重要。非常感谢帮助。
答案 0 :(得分:4)
问题在于,当您使用plot '-'
时,直到e
消耗的数据才会被使用,并且无法再次使用。当您在同一行的后续图表中使用''
时,它只是前一个文件描述符名称的简写。它并不意味着重用已经读过的东西,它意味着再次阅读它。
使其成功的一种非常糟糕的方式,证明了我上面提到的观点,就是在脚本中连续创建四个数据副本。
稍微好一点的是至少将数据修剪到你感兴趣的部分。注意列中的变化;现在每个人using 2
:
plot '-' using 2:xtic(1) ti col, '' u 2 ti col, '' u 2 ti col, '' u 2 ti col
# IMMIGRATION BY REGION AND SELECTED COUNTRY OF LAST RESIDENCE
#
Region Denmark
1891-1900 50231
1901-1910 65285
1911-1920 41983
1921-1930 32430
1931-1940 2559
1941-1950 5393
1951-1960 10984
1961-1970 9201
e
Region Netherlands
1891-1900 26758
1901-1910 48262
1911-1920 43718
1921-1930 26948
1931-1940 7150
1941-1950 14860
1951-1960 52277
1961-1970 30606
e
Region Norway
1891-1900 95015
1901-1910 190505
1911-1920 66395
1921-1930 68531
1931-1940 4740
1941-1950 10100
1951-1960 22935
1961-1970 15484
e
Region Sweden
1891-1900 226266
1901-1910 249534
1911-1920 95074
1921-1930 97249
1931-1940 3960
1941-1950 10665
1951-1960 21697
1961-1970 17116
e
答案 1 :(得分:4)
再看看即将推出的5.0版本:您可以按如下方式定义可重复使用的内部数据块:
$data <<EOF
1 2 3
2 3 4
3 4 5
EOF
plot $data using 1:2, '' using 1:3