QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3556|回复: 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图的绘图代码。
    6 Q8 c( @1 }2 K9 T# V
    / R* @, S8 K! JR语言|绘制二维直方图8 {3 q8 L; [6 R5 [+ k
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。& \5 \# n4 F0 {* g: g8 N) f
    1 j5 ~5 [) q! j0 ^, q' x6 S* x
    1.先绘制基础的散点图;
    + |, c5 G1 U2 `##二维直方图# z+ h( [5 c) T; N" U
    # Library
    7 e5 `# P  }* J- t2 ]library(tidyverse)
    3 y$ n6 j2 t& {  b6 Llibrary(ggplot2)) o: a  k) y9 x/ H8 I( k
    4 p  y: H* T3 T. ]% {8 L
    # 读取数据% K0 F6 h, t( u
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    6 ?9 w7 w( q& zb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    - C5 g( P9 {( B5 C' G1 v* c* Ac <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )9 o" y  P  F  _% W5 v
    data <- rbind(a,b,c)
    . ~  @  h  V5 _, K) c" M
    . W4 t5 A7 O- d, a+ F' a1 g#绘制基础的散点图2 l" g6 k* Q& \7 J0 z8 l
    ggplot(data, aes(x=x, y=y) ) +. _& w  y$ ^  V
      geom_point()" X2 G7 T& I# a6 O, X! D

    4 A- e# ?6 h$ |: r! a+ K" f, \6 X
    . _) f! N2 ]! R" p$ ?; s/ X. ^) Q& ^8 \" J: @1 L
    2.绘制二维直方图。( d( P" C# m9 ?7 a
    ####二维直方图可使用geom_bin2d()函数绘制
    1 R7 e% i3 ^+ y#二维直方图默认选项; K- j1 Y. P) e( m# A
    ggplot(data, aes(x=x, y=y) ) +
    7 M' a4 v; P# `  geom_bin2d() +
    : q. t  m7 X7 P  theme_bw()0 r/ ]6 r/ Y' [6 Q

    0 J3 J1 o3 p  b+ p0 K9 k# Bin大小控制与调色板- w/ r. k! Y) R+ j2 }+ [# S
    ggplot(data, aes(x=x, y=y) ) +
    + l  @) S5 S- H# ]  geom_bin2d(bins = 70) +
    * Z% u; f# E* }& R( D9 p  scale_fill_continuous(type = "viridis") +
    & _. U' C8 Q1 y  theme_bw()1 K+ g' |* s* h  R- x

    , i4 v: V/ b) `" Z: f; C6 ?2 b: c! h4 K' A5 n- V% N9 X

    R语言|绘制Hexbin图

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


    1 G$ A8 R6 c% S9 R# Packages
    % P& P& x* ?" Xlibrary(hexbin)$ m* j, n: ]0 y2 @8 s
    library(RColorBrewer)
    1 o3 M: D/ x  P9 q" _( m3 m1 ]6 _1 F7 g% H& n  o# @& k; q% `
    # Create data
    ( b) N. N5 h3 N2 d* M2 ]5 Kx <- rnorm(mean=1.5, 5000)! W0 x% F& L, \5 _1 u2 Z
    y <- rnorm(mean=1.6, 5000) 2 P6 y& V% C! G8 l- l! ]/ S3 c

    6 ]. E( P3 ^& S# Make the plot
    ( V% f/ |; R) h/ ~$ K, j- ?8 X* vbin<-hexbin(x, y, xbins=40)7 f3 o0 E6 Z7 k2 Q/ F9 q' D
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))+ v0 S4 c7 M1 I, U8 j) L4 }
    plot(bin, main="" , colramp=my_colors , legend=F )
    1 Y; q8 w. a- h$ ], K- q
    ( O4 q3 ~& X% E5 P& ]( I& E- u0 [) C* D* m% k

    . B$ @% t( j7 G& s8 u8 G
    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-10-26 08:35 , Processed in 3.095067 second(s), 51 queries .

    回顶部