QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3231|回复: 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图的绘图代码。  S/ ^4 a$ r/ s; c3 J
    ! g1 A& `- X) ]$ P
    R语言|绘制二维直方图
    7 e$ X3 l; ~4 t9 y$ w. m- c* U对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    8 L" @+ ~: |; ~& ^9 H/ t  t% N( ~7 |3 j+ l; D6 F* f1 U
    1.先绘制基础的散点图;2 m' a  i4 T; Y8 d; h
    ##二维直方图
    / p3 I# M" m& u5 A: c# Library8 _9 S# j$ k  m9 }
    library(tidyverse)6 M$ U% g9 k% `2 O# X! x
    library(ggplot2)
    - f6 m* \1 E& d  q
    $ p" q7 W# D! v: R0 c# 读取数据: I. H6 Z7 P. A& u# x# m
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )* Y; w0 g& G! z7 C) a/ v' b
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )' k; q  r5 T9 G+ o" Z9 B
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    * a4 k+ Q! g4 n7 @2 `data <- rbind(a,b,c)
    $ [2 P+ \6 M! g% G; S; A
    . p" r- D/ L, T" t* Q#绘制基础的散点图" e, X2 E5 Q, @7 r0 v$ ?3 F# U
    ggplot(data, aes(x=x, y=y) ) +' i7 f$ p; Z4 A" g8 ]0 k* s1 E% W
      geom_point()
    " G% p# V" y* V, K& `5 Q& T/ f
    7 C% r- x& @$ X% ?+ C+ M/ [: X$ J  p! p6 V' }2 L
    8 Y6 R* U0 q7 \9 e  [$ ], \
    2.绘制二维直方图。
    + E. F* z. f1 I' [####二维直方图可使用geom_bin2d()函数绘制( W- P$ [; h  I- R
    #二维直方图默认选项% {' {! @5 P. X/ p; N$ u7 w! B, W$ d
    ggplot(data, aes(x=x, y=y) ) +
    2 ?2 A9 @7 Q* D  geom_bin2d() +
    ; g+ T0 ^3 n/ q% S! ^  theme_bw()
    - x' z& k5 ^6 d* r4 }6 f" \) `, P9 x9 e
    # Bin大小控制与调色板
    " a- D4 t+ z. N! G1 k2 f) ?ggplot(data, aes(x=x, y=y) ) +
    3 j4 d! D: t( h$ K9 q! R  geom_bin2d(bins = 70) +! n& |. |4 u3 `- f% z
      scale_fill_continuous(type = "viridis") +
    # {  P7 S" @0 l0 n# V* L& G  theme_bw()9 q& J4 v8 Z9 W' k

    ' {# A: r( i! F0 F
    ! ~) ^! n  Z* m$ \  d/ m& b

    R语言|绘制Hexbin图

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

    % C. r, c; \  z# Y8 Y
    # Packages* }" B  S& k: b% e' |4 y
    library(hexbin)$ y/ N$ I! I7 ]. H! B  ^- v
    library(RColorBrewer) " \( t" x8 D  T$ t9 L; E( V7 d

    3 N9 }- r; p- P6 a. _; W# Create data
    % s: X- W) K8 Ox <- rnorm(mean=1.5, 5000)
    $ {1 X% L5 o' ~1 F! by <- rnorm(mean=1.6, 5000) - N5 z1 U/ L( t) G
    + p* {( ~5 V" j$ D; P* _
    # Make the plot0 O$ C4 I9 k1 c/ ?8 k
    bin<-hexbin(x, y, xbins=40)
    4 J- U, D7 a9 }+ r- q% f3 qmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))3 J% k7 i$ k$ Z0 w4 `
    plot(bin, main="" , colramp=my_colors , legend=F )
    " {6 l0 R8 q/ Z% c) B2 M+ r0 E; x. H- H6 D& u* j3 t7 ^8 E' M

    5 K0 _" ^, o5 N% h7 g' j- N" i' n9 u9 Z6 B  s1 F. y
    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 15:54 , Processed in 0.725950 second(s), 55 queries .

    回顶部