36

ggplot2 でテキスト ラベルの散布図のきれいなバージョンを作成したいと思います。目標は、約 25 項目に関連する値の増加を視覚的に表すことです。すでに「position_jitter」を使っていますが、もっとうまくできないかな。

ここにいくつかのモックデータがあります:

title <- rep("A Really Rather Long Text Label", 25)
value <- runif(25, 1,10)
spacing <- seq(1:25)
df <- data.frame(title, value, spacing, stringsAsFactors = FALSE)

そして、グラフを生成するコードは次のとおりです。

library(ggplot2)
myplot <- ggplot(data=df, aes(x=spacing, y=value, label = title)) +
geom_text(aes(colour = value),
    size = 2.5, fontface = "bold",
    vjust = 0,
    position = position_jitter(width=5, height=0)) +
theme_bw() +
scale_x_continuous(limits = c(-5, 30))+
scale_colour_gradient(low = "#6BAED6", high = "#08306B") +
theme(axis.title.x = element_blank(),
      axis.ticks = element_blank(),
      axis.text.x = element_blank(),
      legend.position = "none")
myplot

テキストが水平方向に必要なだけ自由に移動できる限り、合理的なサイズのグラフには、このすべてのテキストを表示する十分なスペースがあります。ポイントは、各テキスト ラベルに関連付けられた y 値を表示することなので、縦方向にジッターしたくありません。

ggplot コマンドを実行するたびに、グラフの結果がわずかに異なります。また、ジッタリングの結果が他の時間よりも優れている場合もあります。しかし、ラベルが重複するのを体系的に防ぐ方法は見つかりませんでした。

個々のアイテムを手動で移動することなく、テキストの水平方向の配置をクリーンアップする方法についての提案に感謝します. また、この種の視覚的表現を改善する方法について、他のヒントをいただければ幸いです。

4

1 に答える 1

6

FFieldパッケージを見てみる

install.packages("FField", type = "source")
install.packages("ggplot2")
install.packages("gridExtra")
library(FField)
FFieldPtRepDemo()

(この投稿からhttps://stats.stackexchange.com/a/62856 )

于 2014-11-18T18:54:24.067 に答える