1

相関関係をより強調するために、単一のプロットで複数の次元を表示する必要があるデータ分析の段階に到達しました。すべてのデータ ポイントに円グラフを配置するのが最善の方法です。私が見つけた図をここに追加しました:https://andypope.info/charts/piedatamarkers.htm

Gnuplot 5.2 でこのようなグラフを作成するにはどうすればよいですか? 標準のプロット タイプでは不可能であることはわかっています。回避策を探しています。ループに沿って進み、Python を使用して、そのようなプロットを生成するスクリプトを作成します。

ここに画像の説明を入力

4

1 に答える 1

1

ここで説明した例を少し簡略化したものを次に示します。特に、プロット コマンドは短くて明確です。

円グラフの半径は、固定 (列 3 の値 >0) または自動 (列 3 の値 <0) のいずれかです。後者の場合、円の面積は列の合計に比例します。アークの色は色として選択できます0xRRGGBB。この例は、さらなる改善と適応の出発点として役立つ可能性があります。

コード:

### plot with piecharts as points
reset session

$Data <<EOD
# x y    r  c1   c2   c3   c4   c5
2   16  -1  1.0  1.0  1.0  0.5  3.0
3    5  -1  0.8  0.7  0.5  0.9  0.8
7   15  -1  1.5  1.3  1.4  2.1  1.2
11  10  -1  5.6  8.7  3.1  3.1  9.4
12  19  -1  1.7  2.5  3.3  1.0  0.9
17   3  -1  4.1  5.1  1.4  0.5  5.3
19  14  -1  0.1  0.2  0.3  0.4  0.5
22  17  -1  2.1  2.2  3.2  4.2  1.5
EOD

stats $Data nooutput    # get the number of columns
colMax = STATS_columns
colMin = 4              # starting column for data
Scale = 0.3             # general scaling of circles
set angle degrees

Part(i) = sum [col=colMin:i] column(col)
Total(n) = Part(colMax)
Radius(r) = Scale * (r<0 ? sqrt(Total(0)) : r)    # radius<0: automatic calculation, proportional to sqrt
ArcStart = 90                                     # pie-chart start angle: 90=twelve o'clock
ArcDir = -1                                       # direction: -1 = clockwise, 1 = counterclockwise
ArcFrom(i) = ArcDir*Part(int(i)+(ArcDir<0?0:-1))/Total(0)*360 + ArcStart
ArcTo(i)   = ArcDir*Part(int(i)+(ArcDir<0?-1:0))/Total(0)*360 + ArcStart
ArcColor(i) = int(word("0xff0000 0x00ff00 0x0000ff 0xff00ff 0xffff00",i-colMin+1))

set xrange[0:25]
set yrange[0:25]
set grid xtics, ytics
set style fill solid 0.5 noborder

plot for [j=colMin:colMax] $Data u 1:2:(Radius($3)):(ArcFrom(j)):(ArcTo(j)):(ArcColor(j)) w circle lc rgb var notitle
### end of code

結果:

ここに画像の説明を入力

于 2020-12-08T10:01:49.803 に答える