请选择 进入手机版 | 继续访问电脑版

QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2174|回复: 0

R语言绘制二维密度图

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

1158

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    发表于 2021-10-29 10:55 |显示全部楼层
    |招呼Ta 关注Ta
    R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。4 w( o3 a- N" w  ?3 x3 g/ m2 Z

    7 M# ^9 }: e5 LR语言|绘制二维直方图
    * Z' P' ^6 I0 O; a; R3 }. l# p对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    % p3 n  y4 G, p5 l2 Y) {6 ?  r- S* _' I
    1.先绘制基础的散点图;
    8 F% v, O' e2 t/ ^7 O- z) Z) _##二维直方图
    : d0 s* R& i6 m8 p8 a7 P# Library# ]3 \# l$ E  k' M; z4 h; o: H
    library(tidyverse)' {% ^8 m: f$ o  t! v: P
    library(ggplot2)% D3 C* i4 q) i  ~6 q! F

    / C0 e" T3 q% a: \# 读取数据+ @4 D1 N  X* J% x
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    ' x/ e: Z4 u/ g7 hb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )- t. Q+ b) F2 w& _! |+ v( K
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    1 {1 O( z' a- A; w% y# \data <- rbind(a,b,c)
    7 O6 T9 H& g, y: g* X2 i3 L8 F+ t9 ]1 ^! Q0 u! Z
    #绘制基础的散点图
    - a  T* o- G# Oggplot(data, aes(x=x, y=y) ) +
    & p& P7 _9 v0 {7 z0 m  geom_point()
      Q/ @; y" J; E+ \" V: }  c% O$ T5 i# ?. s; U  O

    6 k4 @9 B1 A, J5 q9 j9 P, _/ A5 J) [5 y( F
    2.绘制二维直方图。% H$ Z7 [3 h% j8 H% U: {' q
    ####二维直方图可使用geom_bin2d()函数绘制+ t% v8 V9 V3 C' A; P3 `
    #二维直方图默认选项
    $ I% [+ A3 z( S  _9 Iggplot(data, aes(x=x, y=y) ) +
    # v  V0 \0 E5 C( k  geom_bin2d() +
    ; P6 y+ A8 O# x' M8 ?  theme_bw()' ?; L9 j- p6 l1 ~2 }. p% j5 n
    ' O2 |# P$ w  V0 F
    # Bin大小控制与调色板
    ; Z+ D+ Q( J% v7 I0 c; Gggplot(data, aes(x=x, y=y) ) +
    6 ^& c4 P$ s4 L8 D+ G  geom_bin2d(bins = 70) +
    ) n5 q) t/ x$ v& X1 i  scale_fill_continuous(type = "viridis") +
    4 f" ?2 X% f; c4 O" v# D# _4 k  theme_bw()
    ! J9 r. F2 V% T
    & d. \" ~3 z- R6 }
    8 w$ v8 I# U2 C, `* b! I

    R语言|绘制Hexbin图

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

    . g  y9 U) r6 m' l1 d
    # Packages
    0 T' o# G3 i  Q" k3 Olibrary(hexbin); G+ G/ k" W8 l# C# r* X. n
    library(RColorBrewer)
    $ {( ^2 [0 ?( |: V4 g% k' z6 ~' _5 Q$ F( m5 n$ T% l7 {
    # Create data& ^" q$ H" Q7 R
    x <- rnorm(mean=1.5, 5000)
    " a& N  p- n' @# R0 iy <- rnorm(mean=1.6, 5000)
    % K% x6 Y5 n3 C% a+ w& j
    1 {* x  U+ S& _8 p5 C1 j* r7 Y( ]5 T# Make the plot8 F* \8 L1 k3 h& q: G
    bin<-hexbin(x, y, xbins=40)
    3 M! ?! Q. M! k/ umy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    , a+ L$ f& e( f- Iplot(bin, main="" , colramp=my_colors , legend=F )
    $ K4 w: E) T! x6 f
    " T+ }1 Z2 W/ [9 r; Z
      G0 S( I- |8 C
    5 C9 o. p1 b- t  _: ?2 L2 D, ]8 m" Z
    zan
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2024-4-16 18:10 , Processed in 0.341272 second(s), 51 queries .

    回顶部