第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何在ggplot中合并顏色,線條樣式和形狀圖例

如何在ggplot中合并顏色,線條樣式和形狀圖例

慕蓋茨4494581 2019-10-30 10:03:50
假設(shè)我在ggplot中有以下圖表:ggplot圖它是使用以下代碼生成的:x <- seq(0, 10, by = 0.2)y1 <- sin(x)y2 <- cos(x)y3 <- cos(x + pi / 4)y4 <- sin(x + pi / 4)df1 <- data.frame(x, y = y1, Type = as.factor("sin"), Method = as.factor("method1"))df2 <- data.frame(x, y = y2, Type = as.factor("cos"), Method = as.factor("method1"))df3 <- data.frame(x, y = y3, Type = as.factor("cos"), Method = as.factor("method2"))df4 <- data.frame(x, y = y4, Type = as.factor("sin"), Method = as.factor("method2"))df.merged <- rbind(df1, df2, df3, df4)ggplot(df.merged, aes(x, y, colour = interaction(Type, Method), linetype = Method, shape = Type)) + geom_line() + geom_point()我只希望有一個圖例可以正確顯示形狀,顏色和線型(interaction(類型,方法)圖例最接近我想要的圖例,但它沒有正確的形狀/線型) 。我知道如果我使用scale_xxx_manual并且為所有圖例指定了相同的標(biāo)簽,那么它們將被合并,但是我不想手動設(shè)置標(biāo)簽:如果有新的Method或Types,我不想擁有修改我的代碼:想要一些通用的東西。編輯如以下答案所示,在這種特殊情況下,有幾種方法可以完成工作。所有建議的解決方案都需要使用scale_xxx_manual functions或with guides函數(shù)手動設(shè)置圖例線的類型和形狀。但是,建議的解決方案在一般情況下仍然不起作用:例如,如果我使用新的“ method3”方法向數(shù)據(jù)集添加新的數(shù)據(jù)框,則該方法不再起作用,我們必須手動添加新的圖例形狀和線型:y5 <- sin(x - pi / 4)df5 <- data.frame(x, y = y5, Type = as.factor("sin"), Method = as.factor("method3"))df.merged <- rbind(df1, df2, df3, df4, df5)override.shape <- c(16, 17, 16, 17, 16)override.linetype <- c(1, 1, 3, 3, 4)g <- ggplot(df.merged, aes(x, y, colour = interaction(Type, Method), linetype = Method, shape = Type)) + geom_line() + geom_point()g <- g + guides(colour = guide_legend(override.aes = list(shape = override.shape, linetype = override.linetype)))g <- g + scale_shape(guide = FALSE)g <- g + scale_linetype(guide = FALSE)print(g)這給出:5條曲線現(xiàn)在的問題是:如何自動生成override.shape和override.linetype向量?請注意,向量大小為5,因為我們有5條曲線,而interaction(Type, Method)因子的大小為6(我沒有cos / method3組合的數(shù)據(jù))
查看完整描述

3 回答

?
白衣非少年

TA貢獻(xiàn)1155條經(jīng)驗 獲得超0個贊

前幾天我遇到了這個問題。圖例中的R Cookbook部分說明:


如果同時使用顏色和形狀,則都需要為其指定比例尺規(guī)格。否則,將有兩個兩個單獨的圖例。


在您的情況下,您需要shape和的規(guī)格linetype。


編輯


使用相同的數(shù)據(jù)創(chuàng)建形狀顏色和線條非常重要,我通過直接定義列來組合了您的交互階段。而不是scale_linetype_discrete創(chuàng)造傳奇,我用scale_linetype_manual指定的值,因為它們將在四個不同的值,默認(rèn)情況下。


如果您想要所有可能的形狀和線型的詳細(xì)布局,請訪問R Graphics網(wǎng)站以查看所有數(shù)字標(biāo)識符:


df.merged$int <- paste(df.merged$Type, df.merged$Method, sep=".")


ggplot(df.merged, aes(x, y, colour = int, linetype=int, shape=int)) +

  geom_line() +

  geom_point() +

  scale_colour_discrete("") +

  scale_linetype_manual("", values=c(1,2,1,2)) +

  scale_shape_manual("", values=c(17,17,16,16))


查看完整回答
反對 回復(fù) 2019-10-30
?
富國滬深

TA貢獻(xiàn)1790條經(jīng)驗 獲得超9個贊

labs()對于定義幾何圖形外觀的所有美學(xué)使用并設(shè)置相同的值。


library('ggplot2')

ggplot(iris) + 

  aes(x = Sepal.Length, y = Sepal.Width, 

      color = Species, linetype = Species, shape = Species) +

  geom_line() +

  geom_point() +

  labs(color  = "Guide name", linetype = "Guide name", shape = "Guide name")


查看完整回答
反對 回復(fù) 2019-10-30
  • 3 回答
  • 0 關(guān)注
  • 2802 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號