QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3399|回复: 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图的绘图代码。
    # v& J6 M! i7 T7 ^) C. S9 `  X
    ! [, ~) A- ]4 j! P8 dR语言|绘制二维直方图
    2 x; x" ~* l4 n* h4 F对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。: `/ L. v, ~6 u' {: ]( @! p

    + _, u; M$ h5 f( C' H6 z8 R1.先绘制基础的散点图;
    + ?# R0 |* t& N##二维直方图$ L) @& O# K2 D0 N2 @0 Q  s
    # Library
    . h- R' ~$ l. V+ y, q  J- F) slibrary(tidyverse)2 r, H" M/ ^- F) Q+ Y: [; c0 X
    library(ggplot2)  u2 Q" g- p. j0 t$ d! ^2 Q

    " s  G2 Z0 D4 N( I5 Z0 E) ^3 p# 读取数据" I3 _- T* h5 r
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    , y: v2 e( f$ h2 c) Ib <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )5 [* I" F4 Y+ B, I& _, {
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    1 p6 ~- x0 n9 M+ ~data <- rbind(a,b,c)1 O$ h6 Z$ ^" w: U: d* ?! i0 }5 b

    : d2 c+ O1 n0 O1 }#绘制基础的散点图
    4 N- R& `% E, R1 |+ n# C2 v+ C7 Lggplot(data, aes(x=x, y=y) ) +
    & }9 i' r( n# r' @! r' P# k: U  geom_point()
    1 V* A$ D8 G& |+ \( q
    # E) g/ J+ Z8 r- Q5 C3 a9 g8 E( s) K
    , d$ J: E1 a8 |/ S
    , |# Y6 `, D. l- {2.绘制二维直方图。3 P: i+ e! k6 T! P1 @2 R' i/ c
    ####二维直方图可使用geom_bin2d()函数绘制; W( c6 `- l: Q# [& D# Q2 G
    #二维直方图默认选项* x3 W4 E2 w" j" I' ^8 D
    ggplot(data, aes(x=x, y=y) ) +( p' K$ [# U" Z. U1 M
      geom_bin2d() +
    8 f& S5 v' P8 F0 C* I  theme_bw()
    . V1 a1 `2 r" k% I
    3 i. f4 l4 m) `* w# Bin大小控制与调色板& a2 B+ W  N! A' A8 G( _7 _. n, M
    ggplot(data, aes(x=x, y=y) ) +
    * q" Q8 J" S" O. [6 q4 z  geom_bin2d(bins = 70) +
      k2 `% `5 V7 x4 z! s  scale_fill_continuous(type = "viridis") +- ]9 m$ N: Q" G9 S, X5 ]
      theme_bw()0 ~; j9 G6 J. n+ I, G; e
    : U7 Z& p5 l8 h* [  z
    ! ~3 ~( I7 Z, U) x; Z0 ~

    R语言|绘制Hexbin图

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


    " ]( y$ X% l3 H5 e3 {) t8 Q# Packages  Y. G" e! k1 p1 c: d$ U
    library(hexbin)7 R" w( A2 ~: g; ]
    library(RColorBrewer)
    $ }' S7 b. O8 n3 t7 }- W
    " {" O/ V4 |1 f6 y! Z/ d* v0 w& b& I# Create data
    2 `0 i. p- L: Y: V2 ~6 B4 v" R$ ?9 Fx <- rnorm(mean=1.5, 5000)  s) Y8 U1 l/ ]  K! o6 j9 v
    y <- rnorm(mean=1.6, 5000)
    : t% X3 ?# a) ^
    0 o/ |  K9 L& |# Make the plot. g0 V/ D$ y* k6 E  e4 X0 W) U
    bin<-hexbin(x, y, xbins=40)
    0 j, v: \' |' C0 k/ E/ k9 Zmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))$ ?$ {4 ?! t* K6 t) {! q2 y: n
    plot(bin, main="" , colramp=my_colors , legend=F ) * I! r4 b. j' V, U" |
    + }! I, J9 o2 _# Q1 e
    . p* {1 y+ f0 Y- `0 e4 o) Y3 E! m: W

    # C4 V" u$ |2 p
    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-8-25 20:19 , Processed in 0.463508 second(s), 50 queries .

    回顶部