3

Rでこれに似たものをプロットしようとしています.これはggplotまたは他のパッケージで行うことができますか?

軌跡ツリー

以下のブログで見つけました。

http://intelligenttradingtech.blogspot.com/2011/07/pattern-recognition-forward-boxplot.html

4

2 に答える 2

3

を使用してグラフを作成する方法を次に示しますggplot2

ここに画像の説明を入力

各行の開始位置と終了位置の座標を指定して、手動でデータを作成しました。改善は明らかに、アルゴリズムを使用してこれを自動化することです。これは問題ではなかったので、これも解決しようとしませんでした。

データを作成します。

arrowdata <- c(
  0, 0, 1, 0,
  1, 1, 2, 1,
  1, -1, 2, -1,
  2, 1.5, 3, 1.5,
  2, 0.5, 3, 0.5
)

linesdata <- c(
  1, 0, 1, 1,
  1, 0, 1, -1,
  2, 1, 2, 1.5,
  2, 1, 2, 0.5
)

labeldata <- data.frame(
  x = c(0.5, 1.5, 2.5),
  y = c(0, 1, 1.5),
  labels=c("Label 1", "Label2", "Label 3")
)

adat <- as.data.frame(matrix(arrowdata, ncol=4, byrow=TRUE))
ldat <- as.data.frame(matrix(linesdata, ncol=4, byrow=TRUE))

ggplot2とパッケージをロードし、gridプロットします。

library(ggplot2)
library(grid) # For arrow() function
ggplot() + 
  geom_segment(
    data=adat, 
    aes(x=V1, y=V2, xend=V3, yend=V4),
    arrow=arrow(length = unit(0.05, "npc"), type="closed"),
    col="blue"
  ) +
  geom_segment(
    data=ldat, 
    aes(x=V1, y=V2, xend=V3, yend=V4),
    col="blue"
  ) +
  geom_text(data=labeldata, aes(x, y, label=labels), 
    size=8, vjust=-0.2, col="blue"
  ) +
  theme_bw() +
  opts(
    axis.text.x=theme_blank(),
    axis.text.y=theme_blank(),
    axis.ticks=theme_blank(),
    axis.title.x=theme_blank(),
    axis.title.y=theme_blank(),
    panel.grid.major=theme_blank(),
    panel.border=theme_blank()
  ) +
coord_cartesian(ylim=c(-1.5, 2)) # Create some additional space for labels
于 2012-05-23T08:52:23.290 に答える
1

http://addictedtor.free.fr/graphiques/で何かを見つけるかもしれません。そこには驚くほど多様なグラフやチャートがあります。plotこれで、ベースとgraphics::arrow関数を使用して、頂点間に線を描画する小さなコードを簡単に書くことができます。例えば、

arrows(0,1,0,0) 
lines(c(1,1),c(-.5,.5)) 
arrows(1,2,.5,.5) 

等々。データに基づいてブランチのサイズを設定または配置する必要がありますか、それとも純粋に質的なツリーですか?

于 2012-05-17T11:23:16.310 に答える