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 コマンドを実行するたびに、グラフの結果がわずかに異なります。また、ジッタリングの結果が他の時間よりも優れている場合もあります。しかし、ラベルが重複するのを体系的に防ぐ方法は見つかりませんでした。
個々のアイテムを手動で移動することなく、テキストの水平方向の配置をクリーンアップする方法についての提案に感謝します. また、この種の視覚的表現を改善する方法について、他のヒントをいただければ幸いです。