一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

分組、離斷式坐標(biāo)軸

 阿越就是我 2023-10-12 發(fā)布于上海

ggplot2已經(jīng)非常好用了,但是大家對(duì)美的追求是永無(wú)止境的,比如對(duì)于坐標(biāo)軸,有人可能更喜歡base r那種,base r的很多默認(rèn)圖形,坐標(biāo)軸都是分離的,比如這種:

barplot(c(20,30,40,50,60), names.arg = c(paste0('Col ',1:5)), col = "steelblue")
plot of chunk unnamed-chunk-1

ggplot2不是這樣的,很多人看多了,又覺(jué)得還是默認(rèn)圖形好看,但是又苦于默認(rèn)圖形語(yǔ)法的難以理解和記憶。還有人想要分離的、成組的、截?cái)嗟淖鴺?biāo)軸等等。

很多擴(kuò)展包都實(shí)現(xiàn)了,而且功能更加強(qiáng)大。

  • x軸和y軸分開(kāi)/離斷式坐標(biāo)軸

    • ggprism實(shí)現(xiàn)

    • ggh4x實(shí)現(xiàn)

  • 雙坐標(biāo)軸

  • 嵌套坐標(biāo)軸

x軸和y軸分開(kāi)/離斷式坐標(biāo)軸

ggprism實(shí)現(xiàn)

先介紹基于ggprism的實(shí)現(xiàn)方式,這個(gè)包原本是用于模仿Graphpad Prism的圖形風(fēng)格的,非常好用,我前面專(zhuān)門(mén)介紹過(guò),傳送門(mén):

讓ggplot2變成Graphpad Prism樣式:ggprism(01)

讓ggplot2變成Graphpad Prism樣式:ggprims(05)

library(ggprism)
library(ggplot2)
library(patchwork)

其中prism_offset可以實(shí)現(xiàn)x軸和y軸分開(kāi);

通過(guò)prism_bracket可以實(shí)現(xiàn)截?cái)嗍降淖鴺?biāo)軸,但是只能用于離散型變量。

# 橫坐標(biāo)
p1 <- ggplot(ToothGrowth, aes(x = factor(dose), y = len)) + 
  geom_jitter(aes(shape = factor(dose)), width = 0.2, size = 2) + 
  scale_shape_prism() + 
  theme_prism() + 
  theme(legend.position = "none") + 
  scale_y_continuous(limits = c(040), guide = "prism_offset"# y軸和x軸分開(kāi)

p2 <- p1 + scale_x_discrete(guide = "prism_bracket")

p1 + p2
plot of chunk unnamed-chunk-3

ggprism的實(shí)現(xiàn)方式比較簡(jiǎn)單,主要是模仿在graphpad prism中的樣式。對(duì)于這類(lèi)需要個(gè)性化坐標(biāo)軸的操作,還是ggh4x更加擅長(zhǎng)。

ggh4x實(shí)現(xiàn)

ggh4x是通過(guò)修改guide()函數(shù)實(shí)現(xiàn)的。

library(ggh4x)

g <- ggplot(mtcars, aes(wt, mpg)) +
  geom_point() +
  theme(axis.line = element_line(colour = "black"))

g1 <- g + guides(x = "axis_truncated", y="axis_truncated")

g + g1
plot of chunk unnamed-chunk-4

可以自定義坐標(biāo)軸截?cái)嗟奈恢茫?/p>

g + guides(x = guide_axis_truncated(trunc_lower = c(24),
                                    trunc_upper = c(35)),
           
           # 注意看y軸的斷線的長(zhǎng)短
           y = guide_axis_truncated(trunc_lower = ~ .x - 1,
                                    trunc_upper = ~ .x + 2)
           )
plot of chunk unnamed-chunk-5

雙坐標(biāo)軸

眾所周知,ggplot2現(xiàn)在默認(rèn)支持雙坐標(biāo)軸了,ggh4x為第2條坐標(biāo)軸添加了更多自定義選項(xiàng)。

# 雙向圖形分別添加坐標(biāo)軸

df <- data.frame(x = seq(-33, length.out = 6), y = LETTERS[1:6])

ggplot(df, aes(x, y)) +
  geom_col() +
  scale_x_continuous(
    breaks = -3:0, guide = "axis_truncated",
    sec.axis = dup_axis(
      breaks = 0:3, guide = "axis_truncated",name = "second x")
  ) +
  theme(axis.line.x = element_line())
plot of chunk unnamed-chunk-6

嵌套坐標(biāo)軸

對(duì)于有交互項(xiàng)的圖形,也增加了更多的自定義選項(xiàng)。

df <- data.frame(
  item = c("Coffee""Tea""Apple""Pear""Car"),
  type = c("Drink""Drink""Fruit""Fruit"""),
  amount = c(51231),
  stringsAsFactors = FALSE
)

# 默認(rèn)情況
p1 <- ggplot(df, aes(interaction(item, type), amount)) +
  geom_col()

# 使用ggh4x修改
p2 <- ggplot(df, aes(interaction(item, type), amount)) +
  geom_col() +
  guides(x = "axis_nested")

p1 + p2
plot of chunk unnamed-chunk-7

對(duì)于這個(gè)嵌套坐標(biāo)軸,可以進(jìn)行非常多的細(xì)節(jié)修改,比如最常見(jiàn)的顏色、粗細(xì)等。

ggplot(df, aes(weave_factors(item, type), amount)) +
  geom_col() +
  guides(x = "axis_nested") +
  theme(
    axis.ticks = element_line(colour = "red"),
    ggh4x.axis.nestline.x = element_line(size = 5),
    ggh4x.axis.nesttext.x = element_text(colour = "blue")
  )
plot of chunk unnamed-chunk-8

當(dāng)然也是支持多重嵌套的。

df$type2 <- c(rep("Consumables"4), "Vehicle")
df$appletea <- c("", rep("Ingredient of apple tea"2), rep(NA2))

ggplot(df, aes(weave_factors(item, type, appletea, type2), amount)) +
  geom_col() +
  guides(x = "axis_nested")
plot of chunk unnamed-chunk-9

就簡(jiǎn)單介紹到這里,其實(shí)還有很多細(xì)節(jié)可以修改,大家有興趣可以自己探索,這個(gè)包很厲害,它擴(kuò)展的很多細(xì)節(jié)修改可能不是那么優(yōu)雅,但是確實(shí)解決了很多用戶(hù)的痛點(diǎn)!

以上就是今天的內(nèi)容,希望對(duì)你有幫助哦!歡迎點(diǎn)贊、在看、關(guān)注、轉(zhuǎn)發(fā)!



    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章

    国产又粗又猛又长又大| 麻豆一区二区三区在线免费| 日韩精品中文字幕在线视频| 国产丝袜极品黑色高跟鞋| 亚洲人午夜精品射精日韩| 国产精品亚洲综合天堂夜夜| 亚洲一区二区三区国产| 久久成人国产欧美精品一区二区 | 丁香六月啪啪激情综合区| 久久精品福利在线观看| 91偷拍裸体一区二区三区| 人妻亚洲一区二区三区| 日韩夫妻午夜性生活视频| 亚洲国产av一二三区| 伊人国产精选免费观看在线视频| 欧美精品激情视频一区| 午夜久久精品福利视频| 久久黄片免费播放大全 | 人妻久久这里只有精品| 欧美日韩国产自拍亚洲| 国产精品一区二区视频成人| 精品一区二区三区中文字幕| 国产精品久久精品毛片| 久久国产精品熟女一区二区三区| 中文字幕日韩一区二区不卡| 91天堂素人精品系列全集| 最新国产欧美精品91| 久一视频这里只有精品| 国产日韩欧美一区二区| 欧美一区二区三区十区| 偷拍偷窥女厕一区二区视频| 国产精品香蕉免费手机视频| 国产视频福利一区二区| 亚洲中文在线男人的天堂| 亚洲综合日韩精品欧美综合区| 日韩一区二区三区在线欧洲| 91日韩欧美在线视频| 亚洲妇女作爱一区二区三区| 国产精品一区二区三区激情| 天堂网中文字幕在线视频| 亚洲性日韩精品一区二区|