亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在ggplot中創建寬度一致的圖(帶有圖例)?

如何在ggplot中創建寬度一致的圖(帶有圖例)?

阿晨1998 2019-11-12 10:31:18
我要繪制幾個不同的類別。這些是不同的類別,每個類別都有自己的標簽集,但是在文檔中將它們分組在一起是有意義的。下面給出了一些簡單的堆疊條形圖示例:df <- data.frame(x=c("a", "b", "c"),                 y=c("happy", "sad", "ambivalent about life"))ggplot(df, aes(x=factor(0), fill=x)) + geom_bar()ggplot(df, aes(x=factor(0), fill=y)) + geom_bar()問題在于,使用不同的標簽,圖例具有不同的寬度,這意味著繪圖具有不同的寬度,如果我制作表格或\subfigure元素,結果看起來會有些愚蠢。我怎樣才能解決這個問題?有沒有一種方法可以顯式設置繪圖或圖例的寬度(絕對或相對)?
查看完整描述

3 回答

?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

該cowplot軟件包還具有align_plots用于此目的的功能(輸出未顯示),


both2 <- align_plots(p1, p2, align="hv", axis="tblr")

p1x <- ggdraw(both2[[1]])

p2x <- ggdraw(both2[[2]])

save_plot("cow1.png", p1x)

save_plot("cow2.png", p2x)

并將plot_grid圖保存到同一文件中。


library(cowplot)

both <- plot_grid(p1, p2, ncol=1, labels = c("A", "B"), align = "v")

save_plot("cow.png", both)


查看完整回答
反對 回復 2019-11-12
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

Arun建議將圖例移至頂部或底部:


ggplot(df, aes(x=factor(0), fill=x)) + geom_bar() + theme(legend.position = "bottom")

ggplot(df, aes(x=factor(0), fill=y)) + geom_bar() + theme(legend.position = "bottom")

在此處輸入圖片說明 在此處輸入圖片說明


現在,這些圖具有所需的相同寬度。此外,在兩種情況下,繪圖區域的大小均相等。


如果有更多因素或更長的標簽,則可能需要使用圖例,例如,在兩行或更多行中顯示圖例。theme()并guide_legend()有幾個參數可控制圖例在ggplot2。


查看完整回答
反對 回復 2019-11-12
  • 3 回答
  • 0 關注
  • 1552 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號