web-dev-qa-db-ja.com

ヒストグラムでバーの色を具体的に定義する

以下の更新された質問を参照してください!:

(1古いもの)次のコードがあります:

clear
reset
unset key
# Make the x axis labels easier to read.
set xtics rotate out
# Select histogram data
set style data histogram
# Give the bars a plain fill pattern, and draw a solid line around them.
set style fill solid border

set title "Intensity of luxA signal for different substances"

set output 'luxA.png'
set terminal png transparent nocrop enhanced font times 18 size 840,640 

set ylabel "Intensität"

set style histogram

plot 'luxA.dat' using 2:xticlabels(1)

そして、次のデータ:

Name    Value   Color
"SN wt" 1103    blue
"SN ΔΔ" 124.3333333333  blue
"SN -A" 367.3333333333  blue
"SN -B" 147.3333333333  blue
"10nM C100" 325.6666666667  red
"200nM C100"    207.3333333333  red
"300nM C100"    236.6666666667  red
"LB"    180.6666666667  green
"LuxX"  168 green
"only LB"   62  green
"only MQ"   64.6666666667   green
"LB&wt" 65.3333333333   green
"SN LuxX&wt"    73  green

「色」の列に従ってすべてのバーに色を付けたいです。

また、異なるグループを空間的に少し近くにグループ化できれば(グループ内の距離が短く、グループ間の距離が大きい)、それも素晴らしいことです。

(2新しい質問とデータ)

新しいデータ(エラーバー(偏差)の4行目):

Name    Value   Color   Deviation
"SN wt" 1103    #006400 61.0
"SN ΔΔ" 124.3333333333  #006400 3.21
"SN -CI"    367.3333333333  #006400 25.38
"SN -B" 147.3333333333  #006400 20.74
"10nM C8"   325.6666666667  #0000FF 20.13
"200nM C8"  207.3333333333  #0000FF 28.7
"300nM C8"  236.6666666667  #0000FF 35.91
"1uM BDSF"  596.6666666667  #0000C6 44.12
"10uM BDSF" 545.3333333333  #0000C6 102.01
"15uM BDSF" 547 #0000C6 33.60
"1uM DSF"   596.3333333333  #00008B 98.47
"10uM DSF"  532 #00008B 21
"15uM DSF"  653.6666666667  #00008B 13.65
"LB"    180.6666666667  grey    20.13
"LuxA"  168 grey    20.07
"only LB"   62  grey    9.54
"only MQ"   64.6666666667   grey    20.03   
"LB \\& wt" 65.3333333333   grey    3.79
"SN Lux \\& wt" 73  grey    14.53

->これで、基本的に上記のことを達成したいのですが、エラーバーがあります。以下に提案する解決策は、色には機能しますが、コンピューターの間隔には機能しません(Ubuntu、gnuplot 4.4パッチレベル2)そしてそれはボックスで行われますか?ボックスにエラーバーを追加することは可能ですか?私は少し迷っています、私はCとPythonを知っていますが、このgnuplot構文は私の少し怖いです... :-(

だから私は欲しいです:-色に応じたバー-空間的に一緒にグループ化された同じグループ(色に応じて)(グループ内の小さな間隔、グループ間の大きな間隔)-列4によるエラーバー(それがで行われたかどうかは気にしませんボックスまたはヒストグラム付き、それが機能する限り:-|)-間隔のmgilsonからの解決策(どうもありがとう!)は私にエラーを与えます(以下を参照)。私は何が間違っているのですか?私はそれを述べられた通りに正確に使用します...

ちなみに、お気に入りのgnuplotの本は何ですか?

2
Michael

これはあなたが始めるのを助けることができます:

colors='red blue green'
set for [c in colors] style line strstrt(colors,c) lc rgb c
plot 'test.dat' u (column(0)):2:(strstrt(colors,stringcolumn(3))):xtic(1) w boxes lc variable

ヒストグラムスタイルを廃止したことに注意してください。私は箱の方が好きです:)。

さて、間隔について。これには、インライン関数で少し手間がかかります。

idx=0.0
c_old=''
xidx(c)=(idx=idx+(c eq c_old?1.:1.5),cold=c,idx) #increment by 1 if same as old color, otherwise increment by 1.5
set for [c in colors] style line strstrt(colors,c) lc rgb c  #set linestyle for given color
plot 'test.dat' u (xidx(strcol(3))):2:(strstrt(colors,strcol(3))):xtic(1) w boxes lc variable
0
mgilson