是否有一種簡單的方法在如下所示的「堆疊」條形圖中標記個體「塊」。我希望將標籤放置在每個塊的頂部附近,但是我最新的方法會以某種方式導致美國和墨西哥的文本交換如下。在堆疊的ggplot條形圖中標記單個條
四處尋找一個解決方案,我只找到方法,其中文本的y
值必須在外部預先計算,其中,除了額外的邏輯,使控制的問題順序塊堆疊...
我也發現了這個stackoverflow question那裏我得到了一個stat_bin
使用geom="text"
(見下面的代碼)
下面是我目前的做法進行說明的下調代碼片段的想法。 我不一定要修復這個片段,任何通用的成語標籤堆棧條形圖區域都可以!
編輯:(鑑於這兩個回答這個問題得到了到目前爲止)
我想強調的是,我寧願解決方案,這並不意味着預先計算文本的y位置。
# sample data source
df.StackData <- data.frame(
QType = c("A4-1", "A4-1", "A4-1", "B3", "B3", "B3"),
Country = c("Canada", "USA", "Mexico", "Canada", "USA", "Mexico"),
NbOfCases = c(1000, 1320, 380, 400, 1000, 812),
AvgRate = c(17.2, 11.4, 44.21, 17.3, 15.3, 39.7),
Comment = c("Can", "US", "Mex", "Can", "US", "Mex")
)
和ggplot調用。 它產生上面顯示的圖形,帶有標籤的奇數交換(還有一個額外的圖例,'雖然這個傳奇問題很容易處理;我只是在準備這個問題時注意到了這一點)。
ggplot(data=df.StackData,
aes(x=QType, y=NbOfCases, fill=Country))+
geom_bar(stat="identity", width=1) +
stat_bin(geom="text", aes(label=paste("R coef =",
formatC(AvgRate, format="f", digits=3),
"(", Comment, ")"),
vjust=1.5, size=3
)
)
我的初始嘗試加入geom_text()到圖形如下,但當然的y值是錯誤的(相對於圖的最底部,而不是對各個塊的底部繫帶文本) ...
... +
geom_text(mapping=aes(x=QType, y=NbOfCases,
label=paste("R coef =",
formatC(AvgRate, format="f", digits=3),
"(", Comment, ")"),
vjust=1.5),
size=3)
謝謝你,阿倫,我試圖從暗示預先計算y位置和其送入geom_text的所有解決方案望而卻步,但現在看來,可能是不可能的。 ..你知道其他不需要預先計算的成語嗎? – mjv 2013-03-14 21:16:14
只需嘗試一下你的第一個解決方案:'df.StackData $ Country < - factor(df.StackData $ Country,levels = c(「Canada」,「USA」,「Mexico」),ordered = TRUE)' – Arun 2013-03-14 21:21:44
Bingo它做到了。我留下去除了不想要的傳說,但這應該很容易。謝謝! – mjv 2013-03-14 21:30:02