QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3590|回复: 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图的绘图代码。
    2 U$ x+ \* p; H) H/ E, ^, i5 B
    0 O/ l4 R* F9 q! s( ZR语言|绘制二维直方图4 z) P7 }* v; J7 }1 T( p; z
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。7 |+ g+ c8 p; }( f2 R+ _2 e

    ) ?% x& r& V/ ]; }$ ]6 r1.先绘制基础的散点图;: _& Q* P& {( F& w1 q! V
    ##二维直方图
    0 r" u7 a& |) h0 ?8 f1 s+ {, ]# Library' e+ ?% y% f2 ]: Y2 m
    library(tidyverse)
    + A: @8 L$ u6 J' p. rlibrary(ggplot2)- L( \5 Y, c) H3 n

    % G! l! H" }7 ?# 读取数据0 m3 N. Q4 N* D* e
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )8 z; m; S1 `# V7 y7 x7 X
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )9 M, N! m( q$ s
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    , R4 }+ T1 R+ `2 C+ v4 e; udata <- rbind(a,b,c)
    ! |" `( z) `/ @) {; [0 \
    ! E7 {+ O5 ]% ?& b7 Z#绘制基础的散点图
    , n  e( |' p% ^" \ggplot(data, aes(x=x, y=y) ) +0 T7 z! n. G" |% ]( D
      geom_point()
    * O! s  Q' r" \- w; r; I& d! i9 Q
    & @( b+ E" Q+ b7 E1 c: q# {0 J
    0 U9 P1 M( I( T; T
    ! ?; b3 F4 Z9 W  A. G7 u2.绘制二维直方图。1 z! t3 Q; |9 z: b4 k4 t7 M
    ####二维直方图可使用geom_bin2d()函数绘制/ T1 I' k8 f/ {* B" j) o
    #二维直方图默认选项: y# M; d! L; x# k! O) P$ j
    ggplot(data, aes(x=x, y=y) ) +& D$ r0 Q: U2 k
      geom_bin2d() +
    4 g. f5 I* A2 q3 R: {  M* ]  theme_bw(); V: S) o0 l1 p, r! j9 u6 f( g

    ) R" g0 F7 Z5 z9 n8 q# Bin大小控制与调色板
    4 ]7 J7 P* `2 u0 r2 [ggplot(data, aes(x=x, y=y) ) +
    , J2 M' c. L! u) R0 ?# o1 J  geom_bin2d(bins = 70) +" ~/ k, f" W! |9 @  R! i* t, n
      scale_fill_continuous(type = "viridis") +8 G# h9 ^! @( I* H) L* s% Y
      theme_bw()1 P  m; m4 z. M, P- ]3 t# L1 y

    ( L' k. w: m8 \: V+ S
    . s' s$ _( |3 `0 I

    R语言|绘制Hexbin图

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

    7 F  b  F: p! \" s4 h/ i* j
    # Packages
    . T1 n. |1 x6 ^( klibrary(hexbin)
    % P3 Z2 p, W# R. m: L5 \8 C1 Qlibrary(RColorBrewer) ! u# a2 f* |+ Q8 I" }1 {' q
    2 G" W( {9 ~" L. M1 k
    # Create data
    ' e) V/ e( i; B+ A/ n  Jx <- rnorm(mean=1.5, 5000)7 A( I& A1 h0 ~* G" Q
    y <- rnorm(mean=1.6, 5000) - K9 D, t  m/ B5 W% Y! w2 ^
    : @: q* Z; l0 n4 S$ t2 ]
    # Make the plot( w) [+ h3 w! T; A9 r. r0 e& e
    bin<-hexbin(x, y, xbins=40)
    $ i* a3 r! S% Q: d! X( imy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))& |7 ?0 F* D3 l$ Z0 Y1 I6 V$ B; F
    plot(bin, main="" , colramp=my_colors , legend=F ) : @1 t$ x: c* O. L
    5 W4 I9 H2 H6 T2 m

    8 G: K6 h, y4 S0 N& t
    4 q5 G1 _6 N7 ]- r! S
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    fastpost qq
    收缩
    • 电话咨询

    • 04714969085

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-10-31 16:13 , Processed in 0.304506 second(s), 50 queries .

    回顶部