QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3276|回复: 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图的绘图代码。
    9 P# a( b) b2 m' E( v0 r9 ^) q: g. s; a" L0 C( |# y% Z9 ]
    R语言|绘制二维直方图
    - Z: e6 j5 Y* W0 X4 R对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    9 |2 M/ G. Q7 k+ S7 O. i
    6 _2 {3 O# A/ W' o6 w" Q1 V1.先绘制基础的散点图;9 {3 z6 Y2 u7 z: n5 e  o2 `6 t$ N2 {1 h7 i
    ##二维直方图/ j% v$ d& C2 \$ y5 n- \- m7 t
    # Library5 t8 ?% }9 ^5 j5 @3 }
    library(tidyverse)# I& {, @* e7 u5 G2 f+ e( P, c
    library(ggplot2)
    : O! N/ I; M* v) H$ B) W
    % m9 s/ a5 n7 i* o  @( t! a# 读取数据
    1 k* U: C9 l5 G' i& {a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )+ b- K8 i0 M  n6 @$ F
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    0 n# L8 P' p. B0 Vc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )( M# B2 B7 ^& [. X0 D3 }
    data <- rbind(a,b,c)
    3 R6 d& t8 d* c6 o8 J6 o& ]
    ; A& M0 e2 j% P7 m: A#绘制基础的散点图6 K/ x8 a9 Y' Y# Z' Z+ ^# d( O6 j  B
    ggplot(data, aes(x=x, y=y) ) +& b+ F# K+ I; e2 S
      geom_point()4 K% c2 B# x* c$ z# ~
    2 @' u! l  T% l  e/ f# s
    * f5 L/ w" ^# U- k, \
    7 g( c6 W% ^6 E& i. v& `' r$ N8 n
    2.绘制二维直方图。
    , q6 t$ ]2 B9 Z5 @####二维直方图可使用geom_bin2d()函数绘制
    - c, k9 Q* n" _" L' O( e" D" q- J) g#二维直方图默认选项; @8 M( _6 ?: c# P
    ggplot(data, aes(x=x, y=y) ) +1 n& U5 b: s1 d; {( i: \
      geom_bin2d() +
      g- ~4 F, h2 I: V: M  theme_bw()( r( S6 J6 q1 e% _* D- U

    . V3 R/ [6 |2 T3 V0 M# Bin大小控制与调色板
    : r8 _8 C0 b- E/ O& t8 Bggplot(data, aes(x=x, y=y) ) +
    2 ]; y( i+ X6 ~9 [4 x  geom_bin2d(bins = 70) +
      x% o2 q" [. S0 A5 x* e  scale_fill_continuous(type = "viridis") +
    - p( Z* k" K/ g4 N  theme_bw()
    2 [' u# x: i9 y. s- b, R: S
    * ^+ W3 V5 X  C; h( a/ |7 D
    0 g+ z1 W2 Z9 d4 G

    R语言|绘制Hexbin图

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

    - ?& n/ E. Y8 R8 f9 H2 M: P
    # Packages* B0 v( @, P* G! X6 ]6 ~/ ~1 H; T! T
    library(hexbin)
    0 z1 A" b: C2 s. ulibrary(RColorBrewer)
    7 T0 H6 ]% w: I) L1 E* @3 c
    ( ], m: y! V" C/ V, X# Create data
    / {6 x0 l9 F7 [$ H6 ~x <- rnorm(mean=1.5, 5000)
    - k2 M6 K) G. ky <- rnorm(mean=1.6, 5000)
    ; Q/ [$ U4 x5 Q. W1 k( S/ ~7 e
    : d( `/ ?6 T8 y5 Q& B1 O# Make the plot8 H+ c+ H8 C' u
    bin<-hexbin(x, y, xbins=40)) @2 t* S& ^7 S- ~" k
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    * n# Y; l! t5 Iplot(bin, main="" , colramp=my_colors , legend=F )
    % o4 o2 m( Z7 @7 N
    2 ~$ T3 s4 |: u! M$ |* U4 n! u  N% U# d' d2 h* \- Z

    ( n* @; O, C% h! }7 J6 _
    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-5-26 08:51 , Processed in 0.298637 second(s), 51 queries .

    回顶部