QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3232|回复: 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图的绘图代码。
    7 c1 Z7 U# F$ @: g' \% m/ r( e  n8 m* w  w9 V
    R语言|绘制二维直方图1 q' {  K6 t' c; g* b
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。9 T, N/ u5 D8 s0 ^) _

    % c: C# }5 d# w1.先绘制基础的散点图;3 A9 I4 t0 v* D4 o4 s4 k5 d6 B
    ##二维直方图. E! I  @" `0 G; v( W
    # Library5 q9 W) I; J2 Y7 L4 s
    library(tidyverse)5 R6 M4 O/ K% r3 p$ O
    library(ggplot2)
    , t# f, S+ ~6 Z9 F' F1 I& F* }
    1 [, G0 ^5 L7 y4 Z# 读取数据
    8 K5 C2 U1 ?# p8 U. i9 ]; {6 r0 [a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )6 Y- a) y, y. C8 C
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    ' f- i' E# @! s: Y; w- fc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )4 ~$ B3 J) N( g
    data <- rbind(a,b,c)( W! ]: o9 d, h

    9 P6 t  i. A# k* r: h#绘制基础的散点图
    5 R  u; P: g, Y& T$ vggplot(data, aes(x=x, y=y) ) +, @( z) z5 ]; Q7 u  Z; I
      geom_point()! s4 W: T; d) K$ U# l. K& @) J
    " O" x; K! E: y0 x' ]2 e, m
    ' G) k& H- y5 \* l3 S

    / w! e+ b& H, \' l. {0 m6 R2.绘制二维直方图。
    ' D) c2 z7 T5 k! J; y( a####二维直方图可使用geom_bin2d()函数绘制7 _# Z: Q9 _6 H9 g  C
    #二维直方图默认选项) [1 I& Z& R( `! ^! X
    ggplot(data, aes(x=x, y=y) ) +
    3 Z; k  K* L7 D  geom_bin2d() +/ p) {2 Z# Y2 S$ v4 d( c* m9 r
      theme_bw(). |3 d( q/ h3 Q9 M9 L; q

    $ N0 D6 @/ [: y9 d3 G2 f% G- [# Bin大小控制与调色板3 |7 M0 I& M% b4 r7 a4 J, D
    ggplot(data, aes(x=x, y=y) ) +
    3 e' u5 t& M# Y  }  geom_bin2d(bins = 70) +
    % H5 D+ F# l4 z/ L# L, q  scale_fill_continuous(type = "viridis") +
    , s- G5 }) d# E0 a2 q  theme_bw()) W/ n9 y- A9 ~, {& E" W

    2 t- _) V* Y4 n* D+ v' [- T* o2 k6 q5 z

    R语言|绘制Hexbin图

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


    ; c" w) \% o3 e/ o# Packages* e9 j  o% B7 R- Z- Y  }
    library(hexbin)% f/ H8 ]; N. _& A/ S7 ~$ N
    library(RColorBrewer) 9 X5 V4 w6 H0 t- B$ z
    " r" |* j( ~: E: e+ R6 }
    # Create data6 v# l7 v. {* r
    x <- rnorm(mean=1.5, 5000)
    4 A( U! i8 R* l8 \) g% by <- rnorm(mean=1.6, 5000)
    ! M$ _6 M5 r  `! o& E2 {' y' q1 q+ B, z! t7 t6 T, x% t
    # Make the plot$ Q' z0 D" h7 D0 e
    bin<-hexbin(x, y, xbins=40). [0 U6 T, G4 {6 u2 H  J! I7 h; K2 w+ U
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    ; @. P2 V( n2 n4 I! [plot(bin, main="" , colramp=my_colors , legend=F ) ! N" ~7 {: M5 K8 Y, H# s

    6 d. B+ k4 s# ?2 H% r7 J4 J7 m  E4 E0 R% s, W+ l5 d& K
    $ Y) i8 c1 D8 G3 q' d% e
    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-10 19:37 , Processed in 0.377062 second(s), 51 queries .

    回顶部