QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3284|回复: 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图的绘图代码。: L+ I1 \, C: a: d* B0 ]* N1 X0 \

    # C" N4 D5 Y' l! V1 m8 AR语言|绘制二维直方图# y, @, P$ I8 R6 P, k5 \
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。- {9 U) K3 @3 x# }! W, h

    , |+ ], m0 z# n1.先绘制基础的散点图;
    - v+ x9 L2 r7 P6 W: N. q, z  E##二维直方图8 X8 }) h7 _+ u5 b9 R/ F: [
    # Library
    : j  M6 e- U9 B3 e( z$ blibrary(tidyverse)
    ) v8 b; C$ k; K: t7 x4 t& zlibrary(ggplot2)% ?  {4 _3 D8 B' ~
    0 u% L. S0 L9 W7 \
    # 读取数据
    ! L6 E7 z* T2 N% ?' wa <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )9 V( ~4 M4 w/ S% y
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) ); `1 Z$ L( {7 s. _& t
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) ): D% ]6 T1 a- x2 T* h# K
    data <- rbind(a,b,c)
    7 {) F( s$ q% v9 u: X
    & {: B& c9 p' k#绘制基础的散点图
    ) ~( g4 |* A' X, k3 y  R0 Eggplot(data, aes(x=x, y=y) ) +! C3 M1 n6 D+ c) y4 E
      geom_point()  J: H1 H! m3 X$ f* f

    ; a% D7 v; E2 M& J2 q# T% [
    ! S, ]2 B+ R, x" r1 F- X
    : u0 o5 v" \/ Q, K( p2.绘制二维直方图。9 [1 N7 k( O2 w
    ####二维直方图可使用geom_bin2d()函数绘制9 j" t. e4 w1 n
    #二维直方图默认选项+ _  f/ V1 G% O% D8 T6 a# F
    ggplot(data, aes(x=x, y=y) ) +
    5 c0 U. [) ^/ w  geom_bin2d() +" k0 N/ e# ?1 y+ T, W
      theme_bw(); ]! v. g% x$ \# h" h

    * X8 ?# J) M1 O" U2 k/ Q9 U# Bin大小控制与调色板8 I" e( h# ^; y
    ggplot(data, aes(x=x, y=y) ) +
    7 l' m! L7 [- d+ `  geom_bin2d(bins = 70) +
    ; D- m, k0 \# `+ e8 h  z4 ~  scale_fill_continuous(type = "viridis") +5 j% ~; ]: [' C& n2 V4 U8 s
      theme_bw()' x$ p. ?* o" H7 t

    4 u" [" O- Q; N
    7 `3 d/ I3 r; [) X4 n7 l

    R语言|绘制Hexbin图

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


    2 {# J/ V3 H5 q' O$ q# Packages/ }% O0 z3 {# e7 G# n
    library(hexbin)' Z8 y# }% G0 M. C. V! m1 N% z% M
    library(RColorBrewer)
    ' B: |# ~2 G3 r, V9 [
    9 A, _1 L9 q# J1 @7 D& r# Create data
    ( m2 W, x. u5 l1 N, n; Fx <- rnorm(mean=1.5, 5000)
    0 x' |/ L/ Z% |( J8 ~. yy <- rnorm(mean=1.6, 5000)
    ( Q6 _. Q. O1 r) u4 W" Z; W1 l- k& ?: o& L3 A2 y
    # Make the plot
    ; O& l8 T( {' g1 A, T  G( Rbin<-hexbin(x, y, xbins=40)
    3 L, Y2 T6 ]9 V  Xmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    / u6 d3 {+ c& S, dplot(bin, main="" , colramp=my_colors , legend=F )
    + l( @0 O0 A7 e, y; _% _+ y* E  V
    & ]7 j. c. A' H; H; c+ O8 L2 ?: u% W, e, w: Q; q3 m( H( d& \

    1 S4 U8 m# w& m9 }( 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-6-4 10:17 , Processed in 0.420638 second(s), 52 queries .

    回顶部