Gnuplot:带内联数据的直方图 [英] Gnuplot: Histogram plots with inline data

查看:89
本文介绍了Gnuplot:带内联数据的直方图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Gnuplot 4.6.5

Gnuplot 4.6.5

我想绘制一个直方图.

我在这里尝试了该演示: http://gnuplot.sourceforge.net/demo/直方图2.gnu ,带有单独的日期文件: https://dl.dropboxusercontent .com/u/45318932/immigration.dat .而且有效:

I tried the demo here: http://gnuplot.sourceforge.net/demo/histograms.2.gnu with a separate datefile: https://dl.dropboxusercontent.com/u/45318932/immigration.dat . And it worked:

但是,当我尝试将单独的数据文件作为内联数据放入脚本文件中时:

However, when I tried to put the separate data file as inline data into the script file:

# 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

现在它可以正常工作,仅显示丹麦的结果:

Now it does work properly, only showing the result for Denmark:

Gnuplot终端中有三行相同的警告:

There are three lines of the same warnings in the Gnuplot terminal:

 "C:\Documents and Settings\leoking\My Documents\temp\histograms.plt", line 27: warning: Skipping data file with no valid points

能够为我使用内联数据真的很重要.帮助将不胜感激.

It is really important to be able to use the inline data for me. Helps would be much appreciated.

推荐答案

问题是,当您使用plot '-'时,直到e为止的数据都将被消耗并且无法再次使用.在同一行的后续绘图中使用''时,它只是前一个文件描述符名称的简写.这并不意味着重用已经读取的内容,而是再次读取它.

The problem is that when you use plot '-', the data up until the e is consumed and can't be used again. When you use '' in subsequent plots on the same line, it's just shorthand for the name of the previous file descriptor. It doesn't mean reuse what has already been read, it means read it again.

使它工作的一种非常糟糕的方式证明了我的观点,就是简单地在脚本中连续放置四个数据副本.

A really lousy way of making it work, which proves the point I've made above, is by simply having four copies of the data in a row in your script.

稍好一点是将数据至少修整为您感兴趣的部分.现在每个都是using 2:

Slightly better would be to at least trim the data down to the parts you're interested in. Note the change in column; each one is now 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

这篇关于Gnuplot:带内联数据的直方图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆