QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3552|回复: 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图的绘图代码。
    ' V5 v: z  A8 [+ b1 m0 _/ V" [, F& n/ Z
    R语言|绘制二维直方图
    9 x# ]$ ?( ?" G7 D对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    / }6 k; e/ @4 g# R( z% C) n% f3 M7 p4 N
    1.先绘制基础的散点图;1 {  f! V0 T: {' q
    ##二维直方图
    2 V" `8 |& B+ N1 |) R8 @2 f# Library
    ) Y1 }5 P8 [, x! O( llibrary(tidyverse)
    # F* |2 j. P. o7 O1 H, ~library(ggplot2)
    , `) E" a4 d4 N
    $ ^+ p6 T7 w. e" g  |4 S: z# 读取数据2 T  q8 k+ I" ?; }5 [
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) ), G" O% R, d# p% h& e
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
      H, E8 U( W8 _: c. f% Jc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )/ h' B6 J: Q: J* \! V
    data <- rbind(a,b,c)
    2 U0 {: h0 d# N, E
      c+ p% a9 w* I* ]$ u4 [#绘制基础的散点图
    * O4 v, W) i+ E- Z$ w1 D! w/ iggplot(data, aes(x=x, y=y) ) +
    # j0 l9 q; T1 ]  geom_point()  a2 ^! W2 o$ e& Q! R8 F; D3 Q2 o
    2 `' B$ j& a, x7 h7 [" P6 c
    . `- v0 s! ^2 a

    / n2 ?8 R0 _5 x2.绘制二维直方图。9 q5 s- ~( W' a
    ####二维直方图可使用geom_bin2d()函数绘制- T' s8 p2 F$ L- [1 R* j/ z
    #二维直方图默认选项
    / J# [: G/ ]9 g+ Y9 o$ ?# R5 D8 wggplot(data, aes(x=x, y=y) ) +1 i6 L) u7 P: S- A/ d3 t
      geom_bin2d() +
    ) O+ f9 Z- w! m4 M+ X  theme_bw()& ]' s5 h9 A* l: w4 o0 T& s* \( c
    1 c+ G& _4 h& i% j& j
    # Bin大小控制与调色板- w: |' H9 B& o: ]2 a( G
    ggplot(data, aes(x=x, y=y) ) +
      }/ Y7 k( E* M  geom_bin2d(bins = 70) +# O/ O$ W0 e1 l' C3 F; p; p2 w
      scale_fill_continuous(type = "viridis") +- ~" n/ }/ L9 b8 d8 T
      theme_bw()% {$ J+ b4 [  Y) X3 R* N

    / _+ I) w5 A, h) r3 Z- m' h7 g$ A
    $ |) P! q+ P( F4 v9 a1 x5 s

    R语言|绘制Hexbin图

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

    # b$ \/ \6 C7 z' T2 u
    # Packages1 j: {$ P; k. m2 D: U9 a9 K
    library(hexbin)
    - F, `3 C3 s, p  j7 T! L8 s& ~library(RColorBrewer)
    ! `' X2 |' [  K! m$ V
    ' T  }0 D; }' u/ Y. w# Create data
    ' w6 R/ R% V7 e6 f  i. R- N4 J4 I9 Ex <- rnorm(mean=1.5, 5000)7 C, K/ J: W6 o2 x+ }
    y <- rnorm(mean=1.6, 5000)
    2 l1 i" t4 @+ M7 i4 l, s# k3 V
    ; G) Z1 f7 ^0 j( b/ i8 G# Make the plot# \" f2 m; d. c1 Q1 H! c1 _
    bin<-hexbin(x, y, xbins=40)& p: X7 a. {& T' J. A, ]; \: Y
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    ( h' S7 L2 r  ^& }plot(bin, main="" , colramp=my_colors , legend=F )
    " X' w/ Z( H3 n  T$ a- R* m& C  S* v% G% @/ v; x

    2 G# i% r- R3 t3 p
    + _! W* U3 b: M$ b& 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-25 09:40 , Processed in 0.527922 second(s), 51 queries .

    回顶部