덕분에, 그것은 약간의 작업을 포함하고 당신은 아마 미세 조정에 특정 문제에 대한 세부 사항을해야합니다.
예로서 I 3 (
T^(3)[exp(x)] = 1 + x + x**2/2. + x**3/6.
)를 주문하는 기능
exp(x)
순서 0에서의 테일러 확장 (
T^(0)[exp(x)] = 1
) 값을 포함하는 데이터 파일을 생성. 이러한 종류의 데이터는 원점 주변에서 높은 데이터 밀도를 가지므로 모든 근사값이 정확한 값으로 수렴되고 데이터 밀도가 떨어져서 발생하므로이 문제에 적합합니다. 의 gnuplot과 같이 생성 할 수 있습니다 : 서로 다른 빈 줄 데이터 블록으로 구분 된 필드를 처리 달리의 gnuplot,
set xrange [0:1]
set table
set output "| grep -v '^$' > data"
plot exp(x), 1, 1+x, 1+x+x**2/2., 1+x+x**2/2.+x**3/6.
unset table ; unset output
참고 나는 출력이 나의 데이터 파일이 빈 줄이없는 서식하고있어이 결국 망쳐 놨어요 아래의 히스토그램. 이 데이터는이 (plot "data"
)과 같습니다
을 지금, 나는이 데이터를 2 차원 막대 그래프를 만들 수 있습니다. gnuplot이이 기능을 제공했다면 매우 도움이 될 것입니다.하지만 그렇게하지 않으면 작업이 약간 까다로워집니다. 내가 할 일은 여러 1D 히스토그램을 만드는 것입니다. 후자를 생성하는 방법에 대한 자세한 내용은 this을 확인하십시오.
우선 각 요소 xwidth
을 측정하는 경우 데이터 포인트의 수는 우리가 그리드에 데이터 공간을 분할, 즉, 계산됩니다 귀하의 쓰레기통, xwidth
및 ywidth
에 대한 x
및 y
함께 폭을 파악하는 것입니다 ywidth
에 의해 포함되며 내부에 포함 된 데이터 요소의 수와 동일한 숫자가 지정됩니다. 이러한 요소가 작을수록 그래프의 해상도는 좋아 지지만보기 좋게하려면 더 많은 데이터 요소가 필요합니다.
bin(x,width)=width*floor(x/width)+width/2.0
각 방향을 따라 빈의 수를 정의 : 위의 내 데이터의 경우,이
xwidth = 0.02
ywidth = 0.05
같은 것을 이제 우리는 우리의 1D 쓰레기통 (details)를 정의하는 함수를 선언 할 수 있습니다.내 데이터의 xrange
은 [0:1]
이고 내 yrange
은 [1 : 2.8]이므로 빈의 수는 각각 50과 36이됩니다. Nx = xrange/xwidth
을 사용할 수는 있지만 float가 Nx
이되고 정수가 필요합니다. 안전을 위해 내가 할 : 그것은 다른 방법으로 주위에이 값을 정의하는 것이 더 적합 할 수 있습니다
Nx = 50
Ny = 36
가 : 당신이 정수/부동 소수점 문제가 안되는 경우
xrange/Nx
로
xwidth
을 계산합니다.
는 이제
x
값 위에 루핑
y
따라 1D 히스토그램 생성 :
set output "| grep -v 'u\\|^$' | sed 's/#/\\n#/g' > data2"
set table
plot for [i=0:(Nx-1)] "./data" using \
(bin($2,ywidth)):(i*xwidth <= $1 && (i+1.)*xwidth > $1 ? 1.0 : 0.0) \
smooth freq
unset table ; unset output
지금
data2
그들 각각
Ny
데이터 포인트
y
따라 주사되고, 데이터의
Nx
블록을 포함한다. 이 데이터 포인트의 값은 원래
data
파일의 데이터 항목 수입니다. 즉,
data2
에는 2D 데이터 (
y
,
color
)가 포함되어 있으며 3D로 다시 매핑해야합니다.
x
값은 데이터 블록 위치에 의해 부여되며, gnuplot에서
every
옵션으로 액세스 할 수 있습니다. 플롯이 3 차원 내가 할 :
plot "./data3" with image
다음과 같습니다 :
가 I을했다
set output "| grep -v 'u\\|^$' | sed 's/#/\\n#/g' > data3"
set table
splot for [i=0:(Nx-1)] "./data2" every :::i::i using \
((i+0.5)*xwidth):1:2
unset table ; unset output
이 data3
이제 컬러 맵으로 그릴 수 있습니다 고화질의 데이터를 사용하여 그래프가 더 멋지게 보입니다.
당신이 당신의 데이터를 2D 플롯을 원하십니까 : 각 방향을 따라 2 배의 해상도, 아래처럼 같은 모습으로? 그렇다면'splot' 명령이나'plot 'data.txt'matrix with image '를 살펴보십시오. 아이 다이어그램은 2D 플롯의 특정 용도와 비슷하기 때문에 묻습니다. – andyras
이렇게하려면 외부 도구로 막대 그래프를 만들어야합니다 (예 : [txt 파일에서 heatmap2d를 생성하십시오] (http://stackoverflow.com/questions/18526485/create-heatmap2d-from-txt-file). – Christoph