QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3241|回复: 0
打印 上一主题 下一主题

R语言绘制二维密度图

[复制链接]
字体大小: 正常 放大

1178

主题

15

听众

1万

积分

  • TA的每日心情
    开心
    2023-7-31 10:17
  • 签到天数: 198 天

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-29 10:55 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
    0 a2 T6 [0 R6 O' b* R0 T) h! a4 Y
    / {5 S2 j; m, T. jR语言|绘制二维直方图5 M/ Y' f4 F7 S0 A
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。0 [& H. Z/ m7 O- u- T$ t
    / X. s& b$ C/ U
    1.先绘制基础的散点图;
    8 \' U' O5 I; V& A" p- b##二维直方图+ _* b$ G+ Z' M7 m% M
    # Library2 P+ Q! [: `! y1 P) f
    library(tidyverse)
    : V: u- G$ q; Z2 \: [$ ]% Elibrary(ggplot2)
    8 m, k% S( i7 X: j+ R7 y+ V" v, K& y8 W) H4 F4 [
    # 读取数据0 u. c5 [6 r  {+ A; B
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )* q) o9 C- z! @, D6 d
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )7 z( ^, K, ~8 L0 i" k4 G
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )+ [+ Q& A, e2 l$ }' {
    data <- rbind(a,b,c)1 A2 K- k: E% v

    ; F. U& |7 f& z0 ?% h+ t#绘制基础的散点图
    % [2 o6 P, h" i0 K3 w+ ?ggplot(data, aes(x=x, y=y) ) +
    ! X% ?8 m( I) D3 C0 W$ v" z  geom_point(): Z' i. c1 l) l" X; Q: j
    5 h4 ^2 B1 r2 z* o" o1 x

    8 n; ?, u' \" B3 B
    4 q# f4 u& n' }; y- P2.绘制二维直方图。: X$ k7 n) u" Y* Y; _1 k
    ####二维直方图可使用geom_bin2d()函数绘制
    9 `" Z  Q$ }  K1 G8 u( O2 Z#二维直方图默认选项) Y. P6 Y. k  z' P4 d6 R
    ggplot(data, aes(x=x, y=y) ) +
    , S8 m* _$ N' N4 A0 Q- |% e; w. c  geom_bin2d() +5 w, O: q8 D5 t4 ~8 m3 J4 _6 i9 E
      theme_bw()# X8 U9 Z. j) i
    2 D8 k" ?; J( x5 ^9 J
    # Bin大小控制与调色板
    3 M" T( h/ T% h% f( oggplot(data, aes(x=x, y=y) ) +
    % B3 h2 y4 ]7 o" x5 t5 C( P$ `  geom_bin2d(bins = 70) +
    . A* T' s1 V! {1 }; ?4 y* M$ j  scale_fill_continuous(type = "viridis") +- n, A1 f  K. y# N# U
      theme_bw()
    : V5 D7 k1 i6 E: `( x. W7 D% P- I9 u

      T3 U% ~9 m  D% s/ [. @# ?+ N

    R语言|绘制Hexbin图

    当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。

    / W, e" r% S. q2 P, w* q$ A
    # Packages, W; Q- Z9 C( R! q0 i' @4 P/ A
    library(hexbin)
    , ]1 g- R$ W! V! Tlibrary(RColorBrewer)
      n" H3 m  ?9 g: `
      h& r) ^4 }; F3 l+ X# Create data9 u; V5 c5 U% _% Y1 k- y' m
    x <- rnorm(mean=1.5, 5000)9 b: Z/ Z- N8 ~& H2 P
    y <- rnorm(mean=1.6, 5000)
    9 \1 B) `% I: \" f3 }) E1 h/ E! r' Y0 b( E% _
    # Make the plot: _" ^2 u2 V9 W0 A9 T" V6 `, j
    bin<-hexbin(x, y, xbins=40)- Y% D6 E7 H1 ~% X) F
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    $ b* U0 v- B0 S# p3 f& Rplot(bin, main="" , colramp=my_colors , legend=F ) # s9 x, O: Z. d' w5 y4 W1 _) R6 C

    2 n4 p4 Q# P! t( d) f8 T
    0 ^. W' L+ x5 S  v9 I
    1 C! \5 U" e- L- @: [- W
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-16 00:28 , Processed in 0.330094 second(s), 50 queries .

    回顶部