QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3282|回复: 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图的绘图代码。) B; V7 g9 d+ r" r$ H* l

    ' q9 z! q( z, C& a. C' @R语言|绘制二维直方图5 n& R3 C9 `# s' \$ ^
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。- |8 K( {" M% ?' W+ ?

    ! H- p, D7 n/ j& Y# F1.先绘制基础的散点图;
    ) N9 _6 X8 }2 d4 I2 Q* _! h2 p0 E##二维直方图# o8 _/ @3 d9 p, a
    # Library
    / J& A$ X1 R- J% _library(tidyverse)- s3 @/ h3 O. A, a0 n2 @
    library(ggplot2)
    : G$ d2 g% f  c" h( m$ e5 O8 F1 J  @) }* t
    # 读取数据' u* a/ H5 y( X  D. Z
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )7 |! U/ {0 H; y* {/ e) e
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )- X/ X1 G7 J+ K2 d% P: m& R8 F1 ^  ?
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    & N/ E% R# l+ {- A8 Pdata <- rbind(a,b,c)# E8 u, n+ b+ K1 B# c' N$ _
    - s4 ^9 x/ R) n& @1 X
    #绘制基础的散点图. ?7 w, z: T' ~
    ggplot(data, aes(x=x, y=y) ) +
    . h7 h* Q. E1 H  geom_point()) x, t# z+ u8 i/ L8 n, H9 i

    8 C9 G5 C+ q( ~4 g8 Z( W% O! b
    6 [& X8 P" Z# f. a# A, \2 M: Y5 p' u  f8 ?2 Z+ v1 e, m
    2.绘制二维直方图。
    . ~% b* f/ T+ [* X& I* l8 r/ C; ?####二维直方图可使用geom_bin2d()函数绘制7 T2 ]. ]) L  d: l2 m: M
    #二维直方图默认选项
    + {5 a7 m% h0 p4 X9 [9 Y) r! `0 [ggplot(data, aes(x=x, y=y) ) +
    - e( G- {( Y- J, c1 C) r  geom_bin2d() +
    + ~  v+ A! t8 b+ c# ]; ?  theme_bw()6 I  |5 M$ g0 L5 n2 F  G

    8 p  C9 }7 X0 [, M' ?+ |( G# Bin大小控制与调色板$ U8 p3 j" [" u) R/ N; K6 U
    ggplot(data, aes(x=x, y=y) ) +  [, }! L9 [! N8 E0 M) |5 o
      geom_bin2d(bins = 70) +
    4 u% P* }2 g2 W  scale_fill_continuous(type = "viridis") +  Q& G, u+ s& u0 R( j7 @
      theme_bw(); Q: m5 v4 [; O- M# z
    3 `6 n* F1 w( ~* ]( k; }( C, O
    8 T. G; M  O$ @6 U1 D# k

    R语言|绘制Hexbin图

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

    6 y$ g$ @- T; @; D
    # Packages. t9 T8 _$ B& l
    library(hexbin)
    0 z, ~# f5 N2 l9 w# y% F; Elibrary(RColorBrewer)
    . v" J, x, n- W6 H* Y7 p4 e/ n( \/ n! y$ e% c: d6 O" L
    # Create data
    " n" M' _* J; a, S1 [8 x+ P4 f3 [x <- rnorm(mean=1.5, 5000)9 o# T0 ?8 n% A; ?0 K
    y <- rnorm(mean=1.6, 5000)
    - }/ b+ Q5 U2 R, f! h
    5 K6 H* Y3 K  {; @/ T: U' S# Make the plot
    ( M& |- `% c. ^3 l, A, K$ A2 ]bin<-hexbin(x, y, xbins=40)0 D; O0 A1 ^/ _5 g
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))& \1 Y& K0 b3 k- N6 ]
    plot(bin, main="" , colramp=my_colors , legend=F )
    ; y2 A- L. y2 W: _
    5 i( R7 ^5 f* J8 V, B& x
    & o5 a3 ^1 q7 I) U5 ^. _( d" y) m- N; p
    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-5-30 02:57 , Processed in 0.437575 second(s), 51 queries .

    回顶部