2011-08-08 129 views
1

我已經在數據文件中獲得了x和y值來繪製貝塞爾曲線。每個(x,y)對錶示貝塞爾曲線。現在我需要分開繪製垂直線的線段(最好是虛線)。區域應該在每個(x,y)處,以便多條貝塞爾曲線分開並可以分析。輸入文件是如下:在貝塞爾曲線之間繪製垂直線

0.07  0.543022222222 

0.06  0.694821399177 

0.08  0.734375 

0.12  0.743377777778 

0.11  0.795822222222 

0.09  0.772946197226 

0.14  0.798727048915 

0.05  0.6118208 

0.06  0.517422222222 

的腳本gnuplot的是:

set term x11 persist 

set title "Animation curves" 

set xlabel "Time (secs.)" 

set ylabel "Parameter" 

plot "curve.dat" using 1:2 notitle smooth csplines 

我怎樣才能實現呢?謝謝。

回答

2

您可以使用矢量繪製這些分隔線。下面的腳本應該做的工作:

set key off 
set style line 2 lt 0 lc 1 lw 2 
plot [0.04:0.15] "Data.csv" u 1:2 smooth csplines ls 1, "" u 1:($2-0.1):(0):(0.2) w vectors nohead ls 2 
  • set key off:使notitle關鍵字冗餘所有地塊
  • set style line 2 lt 0 lc 1 lw 2:Discribes分隔線應該什麼樣子。在這種情況下:

    • lt 0:虛線
    • lc 1:2
  • "" u 1:($2-0.1):(0):(0.2) w vectors nohead ls 2紅色

  • lw 2線寬:實際上繪製分隔線:

    • ""使用以前狡猾使用的數據文件
    • u 1:($2-0.1):(0):(0.2):繪製數據文件的位置(x, y - 0.2)(x, y + 0.2)之間的矢量。
    • w vectors nohead:使用矢量,讓他們沒有頭。
    • ls 2:使用預先定義的線條樣式2.

你可能有一個問題,就是在你的數據文件中有所在的位置定義0.06兩個值,這也讓gnuplot的取平均值這兩個值。這就是爲什麼在x=0.06位置的分割線比在其它位置更長的時間,因爲你可以在下面的圖中看到:

Result of the script above

+0

謝謝。我意識到0.06中有兩個值不應該是這種情況。但是這些數值是進行數學計算的結果,因此我必須檢查並詢問我的導師。也可以將邊界線從上到下畫出線條? – zingy

+0

而且我必須在頂部標記每個細分。謝謝。 – zingy

+0

@cvani從上到下依次修改''「u 1:($ 2-0.1):(0):(0.2)w矢量nohead ls 2'。另外'設置xrange'和'設置yrange'可能對此有所幫助。要標記行,請參閱[this](http://www.gnuplot.info/docs_4.2/gnuplot.html#x1-19500043.29)文檔。 – Woltan