ggplot2||圖層添加特定斜率的直線并顯示對應圖例

需求描述

上次內容講述了在做好的圖層中添加特定的陰影區(qū)界逛,來顯示著重突出的部分。本次內容學習一下在圖層中添加特定斜率的直線并在圖例中顯示械念,我們知道添加特定斜率的直線一般分為水平線geom_hline朦拖,垂直線geom_vline和特定斜率的直線geom_abline,添加對應的圖例諸如scale_shape_manual峰档,scale_linetype_manual,scale_color_manual,...

1. 數(shù)據(jù)導入

本次內容以數(shù)據(jù)集mtcars為例,來演示圖形繪制。

rm(list = ls(all=TRUE))#清除所有變量內存
library(ggplot2)#load packages
data(mtcars)
head(mtcars)
> head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

2. 圖形繪制(散點圖)

#設置斜率直線屬性
df_abline <- data.frame(intercept=c(.2,1.05,2),slope=c(3, 1.5,.7),linetype=factor(c(1,3,5)))
#作圖
p <- ggplot(data=mtcars, aes(x=wt, y=drat)) + 
  geom_point(aes(shape = factor(cyl),color = factor(cyl))) +#賦值給顏色或性狀屬性(分組因子變量)
  geom_abline(data=df_abline, aes(intercept=intercept,slope=slope, linetype=linetype)) +
  labs(color="",linetype="") +
  scale_shape_manual(name = "",
                     values=c(1,2,4),
                     labels=c("4","6","8")) +
  scale_linetype_manual(name = "",
                        values=c(1,3,2),
                        labels=c("a","b","c"))
p
geom_abline

2.1 添加水平或者垂直線

df_hline <- data.frame(yintercept=c(3,3.5,4),linetype=factor(c(1,3,5)))
#df_vline <- data.frame(xintercept=c(2,3.5,5),linetype=factor(c(1,3,5)))
p1 <- ggplot(data=mtcars, aes(x=wt, y=drat)) + 
  geom_point(aes(shape = factor(cyl),color = factor(cyl))) +
  geom_hline(data = df_hline, aes(yintercept = intercept, linetype = linetype)) +
  labs(color="",linetype="") +

  scale_shape_manual(name = "",
                     values=c(1,2,4),
                     labels=c("4","6","8")) +
  scale_linetype_manual(name = "",
                        values=c(1,3,2),
                        labels=c("a","b","c"))
p1
Rplot_hline

Rplot_vline

3. 散點圖+趨勢線

df_abline <- data.frame(intercept=c(.2,1.05,2),slope=c(3, 1.5,.7),linetype=factor(c(1,3,5)))

p2 <- ggplot(data=mtcars, aes(x=wt, y=drat)) + 
  geom_point(aes(shape = factor(cyl),color = factor(cyl))) +
  stat_smooth(aes(linetype="regression"),method = "lm",
              formula = y ~ x, se = TRUE, colour = 1, size = 0.5) +
  geom_abline(data = df_abline, aes(intercept = intercept,slope = slope, linetype = linetype)) +
  labs(color="",linetype="") +

  scale_shape_manual(name = "",
                     values=c(1,2,4),
                     labels=c("4","6","8")) +
  scale_linetype_manual(name = "",
                        values=c(1,3,2,4),
                        labels=c("a","b","c","regression"))
p2

Rplot_gression

可以看出當加入趨勢線后刺洒,legend發(fā)生了一些變化

4. 條形圖

(a) 將vline添加到現(xiàn)有繪圖并使其出現(xiàn)在ggplot2圖例中?
(b) 將一條線添加到ggplot2圖并調整圖例
(c) How to make geom_abline show_guide line types show up in legend correctly

set.seed(20200505)
df <- data.frame(val=rnorm(300, 75, 10))
cuts1 <- data.frame(Thresholds="Thresholds A", vals=c(43, 70, 90)) 
cuts2 <- data.frame(Thresholds="Thresholds B", vals=c(46, 79, 86)) 
cuts <- rbind(cuts1,cuts2) 

p3 <- ggplot(data=df, aes(x=val)) + 
  geom_histogram() + 
  geom_vline(data=cuts, 
             aes(xintercept=vals, 
                 linetype=Thresholds, 
                 colour = Thresholds), 
             show.legend = TRUE)
p3
Rplot_barplot

Rplot02_hline

Rplot02_xyz

后記

全是圖吼砂,和移栽的代碼是為總結記錄

PS

2020/05/05 22:40
于疫情勞動節(jié)假期

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末逆航,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子渔肩,更是在濱河造成了極大的恐慌因俐,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件周偎,死亡現(xiàn)場離奇詭異抹剩,居然都是意外死亡,警方通過查閱死者的電腦和手機栏饮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門吧兔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人袍嬉,你說我怎么就攤上這事境蔼。” “怎么了伺通?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵箍土,是天一觀的道長。 經(jīng)常有香客問我罐监,道長吴藻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任弓柱,我火速辦了婚禮沟堡,結果婚禮上,老公的妹妹穿的比我還像新娘矢空。我一直安慰自己航罗,他們只是感情好,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布屁药。 她就那樣靜靜地躺著粥血,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上复亏,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天趾娃,我揣著相機與錄音,去河邊找鬼缔御。 笑死抬闷,一個胖子當著我的面吹牛,可吹牛的內容都是我干的刹淌。 我是一名探鬼主播饶氏,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼讥耗,長吁一口氣:“原來是場噩夢啊……” “哼有勾!你這毒婦竟也來了?” 一聲冷哼從身側響起古程,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蔼卡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后挣磨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雇逞,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年茁裙,在試婚紗的時候發(fā)現(xiàn)自己被綠了塘砸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡晤锥,死狀恐怖掉蔬,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情矾瘾,我是刑警寧澤女轿,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站壕翩,受9級特大地震影響蛉迹,放射性物質發(fā)生泄漏。R本人自食惡果不足惜放妈,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一北救、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧芜抒,春花似錦珍策、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春模聋,著一層夾襖步出監(jiān)牢的瞬間肩民,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工链方, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留持痰,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓祟蚀,卻偏偏與公主長得像工窍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子前酿,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354