QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3238|回复: 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图的绘图代码。
    ) L4 {1 c+ h3 i7 X6 |$ C2 N8 [9 h! `- ^9 I0 y
    R语言|绘制二维直方图" g% E; d! O) m' D& e* [3 f
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    : v1 H6 G  Y/ l( Y# N1 a- s5 {3 x0 }5 Y
    1.先绘制基础的散点图;
    ( ^% ]; }% d8 y! g3 _5 S! E##二维直方图2 m5 _4 J+ d8 P0 L
    # Library1 E& Y% ]  z7 Q5 k: {5 s
    library(tidyverse)  j- k. I4 H' A* |
    library(ggplot2)2 Y- t" n2 N5 Y' w' W' d6 V

    7 t$ C% l: O0 `* m# 读取数据
    / q- _% N3 b- K  z0 w2 {- G- ]a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )9 h8 Q- [# l0 d
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )( _/ i$ R3 m8 ^0 k; u; S
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) ). ?: c! u% @6 }4 m" g
    data <- rbind(a,b,c)
    . @, N0 R. I1 G  ^  `4 \4 L, o- W
    5 A+ S, z3 t- N#绘制基础的散点图& J# q& H- N+ k% N# @$ W1 L& {# K; Q
    ggplot(data, aes(x=x, y=y) ) +
    ( |& _4 \$ }' z: d3 H  geom_point()
      D# |1 G* ~" C, _$ O( e  ~
    - [8 v0 s( B# w: ^* L; I1 y' a2 p8 J* K# Q

    ( w& X' [# q" \% Z' [8 n5 l) }2.绘制二维直方图。
    6 ~/ {: }1 @) a0 {3 N####二维直方图可使用geom_bin2d()函数绘制
    ; E2 }$ R# j, l: G' f2 @% |# V#二维直方图默认选项5 `) T' G3 X% Q. \
    ggplot(data, aes(x=x, y=y) ) +
      Q1 m& a+ k/ t8 j4 d; m  geom_bin2d() +) D6 T# c. O# a; @! i: y
      theme_bw()' M8 N; ?! O" ?9 a7 j5 O! {2 p8 F. I
    7 w$ O( v" o% z. a* S/ P5 [
    # Bin大小控制与调色板- F& ^( m/ E% E% e6 u$ s
    ggplot(data, aes(x=x, y=y) ) +
    / ~) \& g0 v# y  geom_bin2d(bins = 70) +8 m; z4 O: m$ g4 s0 b  n
      scale_fill_continuous(type = "viridis") +9 E! ^$ L- b: U, u7 d
      theme_bw(): [8 f  h) K% L& f3 x

    ; C- M& |* z2 P' L4 P3 z) ^* F( z' m! g1 M0 ]

    R语言|绘制Hexbin图

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

    + L. C5 z8 V) j8 R. F
    # Packages8 v% L; a( C) Z0 L4 u  R2 B; H
    library(hexbin): p0 v7 c: w+ D
    library(RColorBrewer)
    6 h8 U" Q6 g7 o; J% m( S6 q
    ( A+ x- J/ G( P8 J7 T0 X/ Q& [3 |# Create data
    ! r3 S! ?( Y5 I- P$ i: zx <- rnorm(mean=1.5, 5000)3 ?$ L4 l  ?  g- G/ q$ G$ x0 G0 q
    y <- rnorm(mean=1.6, 5000)
    ( e" |8 w1 l8 p) y  O
    + r3 p. p. _  \  d0 O" L7 _0 g# Make the plot" K' [& D6 a9 g( {! ^( G
    bin<-hexbin(x, y, xbins=40)2 x- ]* i2 I/ K0 E# d
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    ) [. ^; O) H) q3 A& Hplot(bin, main="" , colramp=my_colors , legend=F ) 4 X7 q: @, l9 I5 I. s8 |* ^

    # x4 B8 \: |3 X5 y' @) }  v3 b8 P8 u3 ]! K9 q  U0 X5 ~6 r# s

    ! U4 {5 A/ b8 p* D' H6 V
    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-4-12 20:41 , Processed in 0.605032 second(s), 51 queries .

    回顶部