1

私はこのようなサークルプロットを持っています:

  dat <- data.frame(time = factor(rep(0:23,times = 20)),
                 count = sample(200,size = 480,replace = TRUE),
                 grp = sample(LETTERS[1:3],480,replace = TRUE))

ggplot(data = dat,aes(x = time,y  = count,fill = grp)) + 
    geom_bar(stat = "identity",position = "stack") + 
    coord_polar()

y 軸を円の半径にして、この価格にする方法を教えてください。

このような: ここに画像の説明を入力

4

1 に答える 1

4

呼び出しを変更geom_bar()geom_line()て変更するaes()と、必要なプロットが得られます。

# set up the plotting environment
require('ggplot2')
theme_bw(base_size = 8, base_family = "")
# now generate the plot
p <- ggplot(data = dat,
            aes(x = time,
                y  = count,
                color = grp)) +    
    geom_line() + 
    coord_polar()

print(p)

これにより、次のようになります。

ここに画像の説明を入力

時間データには時間しか含まれていないため、現時点では少し奇妙に見えます。10 進数の時間の場合は、より多くの情報が表示されることがあります。

次のステップは、新しいラベルに適したラベルを見つけ出し、y 軸にブレークを設定し、 を使用して新しい目盛りラベルを偽装geom_text()し、古いラベルと目盛りを削除して、軸のラベル付けを修正することtheme()です。

ybreaks <- pretty(x = data$count, n = 5)
p <- ggplot(data = data,
            aes(x = time, y  = count, color = grp)) + 
  geom_path() + 
  coord_polar() +
  scale_y_continuous(breaks = ybreaks) + 
  geom_text(data = data.frame(x = 0, y = ybreaks, label = ybreaks),
            aes(x = x, y = y, label = label),
            inherit.aes = F,
            size = 2) +
  theme(axis.text.y = element_blank(),
        axis.ticks.y = element_line(size = 0))
print(p)

そして今、あなたはあなたのプロットを持っています:

ここに画像の説明を入力

pretty()を使用して y 軸にブレークとラベルの両方を設定する利点は、プロットされたデータに応じて軸のラベルが自動的に変更され、グリッド線に合わせられることです。

フォントサイズを整理するためにいじる必要がありますが、ほとんどはそこにあります。これを行う方法の詳細については、ggplot2 のドキュメントを参照してください。

于 2013-08-31T15:51:32.943 に答える