QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3341|回复: 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图的绘图代码。
    , u6 D5 l" W. S2 c2 {# v3 g4 o" q4 A6 Y
    R语言|绘制二维直方图
    ( _6 \8 e* T; M1 W0 c9 P# n" B对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    2 d6 T1 N3 U3 J8 i) u. V9 Q, I3 c1 v& p. [
    1.先绘制基础的散点图;
    : u" U" I, i1 r- c##二维直方图
    / g1 w# m/ o5 r3 I, _- w# Library
    & ?4 g+ F2 I) F8 ?: Qlibrary(tidyverse)) i; }. a4 O# M) a$ B4 x1 u
    library(ggplot2)
    " ^9 L# a- U& x" {/ {  ~
    / w. a+ A- f: n+ U+ e- N: L2 ]# 读取数据
    ( H8 i$ x/ c# |# j/ c0 N  T9 _/ T5 ~a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )0 q/ L( r0 Y; i& |) B, H+ U
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    & f, i5 J9 N. c& G9 hc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )( s! G$ ^. n: f) u: f+ ?* I9 p: M
    data <- rbind(a,b,c)9 I: y/ b6 u2 v9 t) h% f2 L7 a
    " `0 @8 x+ A0 b
    #绘制基础的散点图4 `  D6 J7 `) V! G' r: f. i/ E
    ggplot(data, aes(x=x, y=y) ) +
    * \5 I# Y/ `/ j+ F4 E6 A  geom_point()1 Q3 @6 \* E' x' Z" c, W$ M

      z( M+ s4 `4 o( Y3 F, e7 T2 n: E/ Z# @5 R  O

    ( o% U$ {% y0 Z+ ]& o, l, O' d2.绘制二维直方图。
    9 h8 N  h0 R; F* z' H####二维直方图可使用geom_bin2d()函数绘制
    8 M; H6 o4 ~4 U; u3 ~! {  }9 ~#二维直方图默认选项
    0 |/ B1 h% t1 d7 e. {1 p# gggplot(data, aes(x=x, y=y) ) +3 ]& \- v1 s7 t; n% r
      geom_bin2d() +
    ; v5 d' u* e; }  `  ?" p8 ?  theme_bw()% Z4 L: W; W7 n3 P- x2 E0 i

    2 @/ Z, n. \$ P+ J0 [( v# Bin大小控制与调色板# G( [- x" }0 L' t% |! K; B
    ggplot(data, aes(x=x, y=y) ) +1 ^( k$ \" l7 s: u9 {
      geom_bin2d(bins = 70) +
    + Q; [' O8 \+ E  scale_fill_continuous(type = "viridis") +4 t. U0 D' c; P; o6 j
      theme_bw()
    ! Z& W) w$ E% {" c
    * K1 }9 u$ e! V; M3 a$ n
    ! y- a7 q: Q5 f; u3 q% w$ M& a

    R语言|绘制Hexbin图

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


    # U: F! V# \& f, o# Packages
    " @+ h3 N# k. c& b" U6 flibrary(hexbin)- K% u1 B! Z# v' B6 q
    library(RColorBrewer)
      m7 A8 a5 B6 i9 N4 \% s. d: }/ Z) Q% C; F2 ?7 f: L. Q; r( z
    # Create data
    - a' v% G! n$ Y$ W) J4 k; e1 [x <- rnorm(mean=1.5, 5000)
    ) Q9 {, q3 F* ?* h2 n' qy <- rnorm(mean=1.6, 5000) ; h: G- y7 F  H: m' o5 c

    * i1 J) k6 k: ^; `; r* D+ [# Make the plot/ r: s  o# K% ]2 K
    bin<-hexbin(x, y, xbins=40)
    ' x# ~# \  C/ W( f' F2 j( nmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    2 X+ D# J0 f% K$ W$ i! splot(bin, main="" , colramp=my_colors , legend=F )
    : ~! c& [) }' X" ]. M* y8 D' O/ L* q7 }& z$ l9 N
      m( ~( u! X2 o0 z+ Q! X" V# R
    & v; n; @6 }' }) s! H- _
    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-21 18:27 , Processed in 3.302542 second(s), 51 queries .

    回顶部