QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3319|回复: 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图的绘图代码。
    , P* d( a/ u! m  y7 Q' u
    " e; w/ ]+ }$ y: E. @& VR语言|绘制二维直方图! I+ }2 d; E# ?5 `: t5 l
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    / v2 n! h7 h) \2 n: }
    % [' l+ [4 U- I8 C  r! z8 W9 J# U4 L- A" i1.先绘制基础的散点图;& P! d* M- t: V# G8 o+ R
    ##二维直方图  V' W1 G7 W. M2 b! G$ t" s
    # Library9 u9 y' i/ v' ~$ g6 e3 }: c
    library(tidyverse)9 A: o: P/ L7 r+ ?
    library(ggplot2)" U2 \8 N5 {0 I- E3 h* d
    8 N  B1 s4 d: Z8 Z1 ]$ g" _/ D& _
    # 读取数据
    & i& w" W: U* `a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )& g; m! b+ Z8 Q# I
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )/ j$ P4 a6 G9 S% i  |
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    8 g# @$ z/ G  l& mdata <- rbind(a,b,c)" C6 _' G  M5 g! h6 u
    # A4 @2 `, x! I5 f# ?4 ^. B
    #绘制基础的散点图) ?% L! o8 j/ q! t
    ggplot(data, aes(x=x, y=y) ) +% k1 M6 a0 ]5 {& F8 H  N/ T- R
      geom_point()
    # [3 L! F5 J9 F; b; c" s8 ]6 C* j8 p! B) D! v' T) @

    + Q4 Y( t0 ?) b0 o& }( a) N& W+ `* ?8 ~$ a- b4 L: H
    2.绘制二维直方图。; z+ y7 {2 K$ r8 ^/ E
    ####二维直方图可使用geom_bin2d()函数绘制
    / U8 a# r3 x1 j+ P#二维直方图默认选项
    7 ~9 @# T# A7 iggplot(data, aes(x=x, y=y) ) +
    7 S4 ]4 v0 O4 t  geom_bin2d() +
    4 U- W  k3 i- E4 ^  theme_bw()/ J; a$ b- d2 `5 x' u! v5 G
    # }4 _  l& ], n) C5 y
    # Bin大小控制与调色板& D$ H; K% M' D$ t
    ggplot(data, aes(x=x, y=y) ) +
    : j! g, F: m8 ^. n# e, C* l  geom_bin2d(bins = 70) +; @: M% k  H6 o# P; o
      scale_fill_continuous(type = "viridis") +3 e5 i* C( u8 Y6 K: O  {0 a6 v
      theme_bw()
    $ A8 L2 ^) ?9 E( K+ G8 X
    & }# Q; W; K5 }7 Q9 F) z  |
    # n% N2 g! U* _  k

    R语言|绘制Hexbin图

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


    5 N( j. L! P8 u1 A2 w% o5 Z# Packages
    5 d& N% L1 l2 o+ R( }library(hexbin)
    6 o+ X# @, g$ y0 Q# Olibrary(RColorBrewer)
    - Z# H* n6 {. ^/ n/ D
    ! Y% L; z5 @  }: z7 H# Create data* d8 l& T6 r: c  @( f9 F9 w
    x <- rnorm(mean=1.5, 5000)
    + t! a7 a5 L' j7 J5 \$ Ny <- rnorm(mean=1.6, 5000) 1 m* @* X$ \3 L& K0 b$ x  l
    6 X" V5 |; \- g9 j. D7 Q
    # Make the plot3 z% M/ |) Z( W/ A6 W  @1 B/ I
    bin<-hexbin(x, y, xbins=40)
    8 |/ C6 o. J# cmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))4 d6 K( E8 w  w4 u8 r
    plot(bin, main="" , colramp=my_colors , legend=F ) & l# J+ s, O: n

    2 I+ D) C  X: E& u: T' o' Q6 y/ `* ]* y  w
    % m- M+ t& v8 I9 ]' L" {2 Q% d
    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-7-10 16:07 , Processed in 0.762537 second(s), 51 queries .

    回顶部