可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
i have the following data:
t_4 24 3 0 0 t_6 37 4 0 0 t_8 51 4 2 0 t_4 15 1 0 0 t_6 21 0 0 1 t_8 30 0 0 1 t_4 13 2 1 0 t_6 20 3 1 0 t_8 22 4 1 0
and i try to make an histogram similar to this http://www.bmsc.washington.edu/people/merritt/gnuplot/stack+cluster.dem , with this modify version of the code:
set style data histogram set style histogram rowstacked set style fill solid set boxwidth 0.5 set key invert samplen 0.2 set key samplen 0.2 set bmargin 3 set offset 0,2,0,0 set title "number of multiple resonances" plot newhistogram "1:j" lt 1, \ 'stack+cluster.dat' index 0 u 2:xtic(1) title "one", \ '' index 0 u 3 title "two", \ '' index 0 u 4 title "three", \ '' index 0 u 5 title "four" newhistogram "2:j" lt 1, \ 'stack+cluster.dat' index 1 u 2:xtic(1) notitle, \ '' index 1 u 3 notitle, \ '' index 1 u 4 notitle, \ '' index 1 u 5 notitle newhistogram "3:j" lt 1, \ 'stack+cluster.dat' index 1 u 2:xtic(1) notitle, \ '' index 1 u 3 notitle, \ '' index 1 u 4 notitle, \ '' index 1 u 5 notitle
but this is the output i found
As you can see the problem is in the x labels names newhistogram "1:j" , "2:j" and "3:j" : i can see only "1:j" and overlapped with the "t_4...".
Can someone help me, please?
回答1:
That script gives an error! All commands must belong to a single plot commands. As you have it, the script terminates before the second newhistogram.
The next thing is, that you need to separate two blocks with two blank lines in order to address them with the index parameter (for this see also the comments in the data file http://www.bmsc.washington.edu/people/merritt/gnuplot/stack+cluster.dat which belongs to the example you talked about).
With these corrections you get the following script (note also the title offset):
set style data histogram set style histogram rowstacked title offset 0,-1 set style fill solid set boxwidth 0.5 set key invert samplen 0.2 set key samplen 0.2 set bmargin 3 set offset 0,2,0,0 set title "number of multiple resonances" plot newhistogram "1:j" lt 1, \ 'stack+cluster.dat' index 0 u 2:xtic(1) title "one", \ '' index 0 u 3 title "two", \ '' index 0 u 4 title "three", \ '' index 0 u 5 title "four",\ newhistogram "2:j" lt 1, \ 'stack+cluster.dat' index 1 u 2:xtic(1) notitle, \ '' index 1 u 3 notitle, \ '' index 1 u 4 notitle, \ '' index 1 u 5 notitle,\ newhistogram "3:j" lt 1, \ 'stack+cluster.dat' index 1 u 2:xtic(1) notitle, \ '' index 2 u 3 notitle, \ '' index 2 u 4 notitle, \ '' index 2 u 5 notitle
with the result (with 4.6.5):
回答2:
#cat subset1.csv "subset1","close","43","20" "subset1","open","53","40" "subset1","partial","44","28" #cat subset2.csv "subset2","close","24","31", "subset2","open","47","35", "subset2","partial","44","28",
gnuplot
set datafile separator "," set style data histogram set style histogram rowstack gap 1 set style fill solid border -1 set boxwidth 0.5 relative set xtics rotate by 45 offset -0.8,-4.3 set xlabel offset 0, -2 set bmargin 8 plot \ newhistogram "subset1" lt 1,\ 'subset1.csv' using 3:xticlabels(2) title "internal" linecolor rgb "gray",\ 'subset1.csv' using 4:xticlabels(2) title "external" linecolor rgb "white",\ newhistogram "subset2" lt 1,\ 'subset2.csv' using 3:xticlabels(2) title "" linecolor rgb "gray",\ 'subset2.csv' using 4:xticlabels(2) title "" linecolor rgb "white" #The bellow command is the same as the above but in one line one to avoid (\n) problems # plot newhistogram "subset1" lt 1, 'subset1.csv' using 3:xticlabels(2) title "internal" linecolor rgb "gray", 'subset1.csv' using 4:xticlabels(2) title "external" linecolor rgb "white", newhistogram "subset2" lt 1, 'subset2.csv' using 3:xticlabels(2) title "" linecolor rgb "gray", 'subset2.csv' using 4:xticlabels(2) title "" linecolor rgb "white"
gnuplot output http://oi61.tinypic.com/nyxoh.jpg