2

x軸にdatetime、y軸にcategoricalを持つggplot2グラフがあります。X 軸の特定の日付に 9 つのテキスト注釈を配置する必要がありますが、グラフ自体に注釈を配置するスペースがありません。自動生成された日付を x 軸に保持し、カスタム ラベルも追加したいと考えています。上か下かは気にしない。

以下合成例。9 つのイベントがあり、これらのイベントに至るまで多くのアクティビティがあります。各イベントの下にイベント名を示すテキスト ラベルを配置したいと考えています。たとえば、2 月 11 日の真夜中のこのデータでは、どこかに「イベント 1」というラベルを付けたいと考えています。

events <- data.frame(names=c("Event 1", "Event 2", "Event 3", "Event 4", "Event 5", "Event 6", "Event 7", "Event 8", "Event 9"),
                       dates=strptime(c("2013-02-10 11:59 pm", "2013-02-21 11:59 pm", "2013-03-02 11:59 pm", "2013-03-16 11:59 pm", "2013-03-26 12:00 pm", "2013-04-11 11:59 pm", "2013-04-24 11:59 pm", "2013-04-23 11:59 pm", "2013-05-08 12:00 pm")
                                      , "%Y-%m-%d %I:%M %p"))
units <- replicate(125, paste(sample(LETTERS, 8), collapse=""))
n <- 2000
df <- data.frame(name=sample(units, n, replace=TRUE),
           d=(sample(events$dates, n, replace=TRUE)-rexp(n, 1/150000)),
            value=rexp(n, 1/110))

ggplot(data=df, aes(x=d, y=name)) + 
    geom_point(alpha=I(1/2), aes(size=log(value))) +
    ylab("Each row is one unit") +
    xlab("Date") +
    theme(legend.position="none", legend.direction="horizontal",
          axis.text.y=element_blank(),
          axis.ticks.y=element_blank(),
          axis.line.y=element_blank(),
          panel.grid.major.y=element_blank(),
          panel.grid.minor.y=element_blank())

生成された合成画像

4

1 に答える 1

4

geom_text()プロット内にラベルをプロットするために使用できます。xdatesはデータフレームeventsで使用され、値として負yの数を設定して、ポイントの下にラベルをプロットします。とvjust=hjust=、ラベルの配置を調整できます (日付の中央または左右)。

ggplot(data=df, aes(x=d, y=name)) + 
  geom_point(alpha=I(1/2), aes(size=log(value))) +
  geom_text(data=events,aes(x=dates,y=-5,label=names),inherit_aes=FALSE,
            vjust=-1,hjust=0,size=3)+
  ylab("Each row is one unit") +
  xlab("Date") +
  theme(legend.position="none", legend.direction="horizontal",
        axis.text.y=element_blank(),
        axis.ticks.y=element_blank(),
        axis.line.y=element_blank(),
        panel.grid.major.y=element_blank(),
        panel.grid.minor.y=element_blank())

ここに画像の説明を入力

于 2013-05-09T18:02:50.793 に答える