QQ登录

只需要一步,快速开始

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

R语言绘制二维密度图

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

1158

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-29 10:55 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
    8 m5 A, L2 C  N" C; ^- w5 g9 X9 Q& e
    R语言|绘制二维直方图; c& d8 L: C2 P2 U( r. u/ i( A$ J2 T  T
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    $ I' w/ M/ u7 E; n: M. `5 h. B1 U7 ~; H0 i# s% ]3 Y1 C
    1.先绘制基础的散点图;
    * P% _. t& L5 P+ o7 L##二维直方图9 B  F$ [" T; W  C
    # Library' X+ \( |3 R* a, R$ R( U: _
    library(tidyverse)
    $ m% b! t, R% l) h: ?& h* Wlibrary(ggplot2)
    9 s/ K: E) M, ~  [" a: S% V& g5 r1 D- m/ q+ y" h. w/ Z
    # 读取数据
    . B+ \* z& U& A' Aa <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )8 L5 ^" l- l' z9 ^! |3 }" c4 ^& f
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) ), \! k, o1 O2 n  u+ q
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )8 I# u3 R/ J2 }9 f+ F- Y  F
    data <- rbind(a,b,c)
    0 G1 r$ y% |  o$ \3 R8 I; ]/ n, P$ B
    #绘制基础的散点图5 v0 l4 U2 g/ w% y
    ggplot(data, aes(x=x, y=y) ) +
    ( o6 y2 q% G$ p  geom_point()
    2 v6 d$ I3 ]3 B7 l. o# n0 [* N/ B2 l! Y7 x, x% s4 N

    7 x9 \# b7 }3 Z
    : [0 G7 n; y2 u+ T1 [2.绘制二维直方图。
    - h9 t8 ~) R1 o- f  l0 t" ]5 U0 _####二维直方图可使用geom_bin2d()函数绘制
    + R( W* @- }) i; H. i; l4 P# f5 U#二维直方图默认选项! |3 W1 h$ k; {
    ggplot(data, aes(x=x, y=y) ) +
    5 }( `. y6 ?& t. Y  geom_bin2d() +
    9 I2 J' i' T# V5 P  theme_bw()" E+ w+ ~6 m) F# ~- `
    ! e2 p4 X8 M  i( ?
    # Bin大小控制与调色板
    , K& `/ r# U$ X2 B8 z1 \6 W; q5 Aggplot(data, aes(x=x, y=y) ) +0 O0 N( N3 \3 V
      geom_bin2d(bins = 70) +8 n" J9 f2 k# O) k5 h$ O! P
      scale_fill_continuous(type = "viridis") +$ G( A  U. e' |7 h1 ]" V' S* O
      theme_bw()6 }( j( [. F/ G; f  F0 q' p

    $ e: d0 ?/ B7 }- c2 p( y4 a7 @4 [; Z0 z& O& {9 [$ f

    R语言|绘制Hexbin图

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


    7 G6 v% a# G# Q( J+ h# Packages7 S& s7 q# R! \! u. {7 O
    library(hexbin)
    8 ~" W! r. J8 m4 Blibrary(RColorBrewer)
    # l4 C! C! L. b; l: h: s; g
    " D" L$ @% K* r; v3 u7 |! p6 Q# Create data
    1 Z8 Q" I+ k1 p) o% K2 f$ f- W4 ]x <- rnorm(mean=1.5, 5000)& I5 ^$ v. U: b, A, E
    y <- rnorm(mean=1.6, 5000)
    ; r8 r5 D- ]1 O& d
    7 h# t, }8 U" |  }; N! E# Make the plot
    8 i4 F1 F- f  A, p) S8 M. R/ @bin<-hexbin(x, y, xbins=40)6 l" e7 i9 l# N) p" T6 f3 ]
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))) g0 P1 E6 J( ^! D
    plot(bin, main="" , colramp=my_colors , legend=F ) 4 ]1 J% Y9 y! K, Y6 S
    . X- O, J/ Y3 [% s, m

    & Z, N: |) D" u8 `/ y% a5 s5 x3 {1 R5 ]
    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, 2024-5-9 09:04 , Processed in 0.338102 second(s), 50 queries .

    回顶部