히스토그램을 그릴 때 gnuplot에서 boxwidth 옵션을 사용하는 데 문제가 있습니다. 다음은 정규 분포 난수의 히스토그램을 그리는 데 사용하는 gnuplot 스크립트입니다.
# Parameters
n=50 # number of intervals
min=-5. # min value
max=5. # max value
width = (max-min)/n # interval width
# Function used to map a value to the intervals
hist(x,width)=width*floor(x/width)+width/2.
# Output
set term png
set output "histogram.png"
# Graph
set xrange [min:max]
set yrange [0:]
set xtics min,(max-min)/5,max
set boxwidth width*0.9
set style fill solid 0.5
set tics out
set yzeroaxis # Add a vertical dotted line at x=0 to show centre (mean) of distribution
set xlabel "Random number"
set ylabel "Frenquency (%)"
# Count and Plot
plot "Random_numbers.txt" u (hist($1,width)):(100.0/ 10000 ) smooth freq w boxes notitle
이 스크립트를 사용하면 "상자"는 단지 "선"(너비가 없는 상자)입니다. 이유를 아시나요?
"set boxwidth width*0.9" 행을 제거하면 작동하며 상자 너비는 "너비"(인접 상자에 닿는 상자)입니다.
미리 감사드립니다!
참고: 죄송합니다. 이미지 업로드가 작동하지 않습니다. 내 문제를 상상해 보시기 바랍니다. (저는 다음과 같은 플롯을 얻고 싶습니다.
하지만 내 경우에는 상자에 너비가 없고 수직선만 표시됩니다.)...
답변1
제가 시도할 몇 가지 사항은 다음과 같습니다.
set boxwidth 0.2
이것이 작동하면 다음을 수행해야 합니다.
n=50.0
당신의분그리고최고변수는 부동 소수점이므로 계산할 때 부동 분할을 얻어야 합니다.너비, 정수이더라도N, 그러나 나는 gnuplot이 이와 관련하여 예상치 못한 동작을 한다는 것을 알았으므로 시도해 볼 가치가 있습니다.
답변2
나에게 맞는 것 같습니다(gnuplot 버전 4.6 패치 레벨 3). 당신은 시도 할 수 있습니다
set boxwidth width*0.9 absolute
나도 마찬가지다. 온라인에 하나 있어요gnuplot 도구하지만 어떻게 사용하는지 모르겠습니다.
이것들온라인 데모버전 4.0이라고 주장하고 상수 값을 사용하면 결과가 좋아 보입니다.
set boxwidth 0.2 absolute
답변3
당신은 시도 할 수 있습니다
set boxwidth 0.9 relative