QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2731|回复: 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图的绘图代码。6 L( J5 ?1 t! R& j/ K% u( F- I
    ' d# N3 F( i7 {6 \# Y
    R语言|绘制二维直方图/ h. @' z0 }, q
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。9 \( K; D5 w4 D

    4 `. h% M/ X, Y0 V; s1 j9 u0 X* F1.先绘制基础的散点图;
    + a1 T' X" B3 D+ R+ u##二维直方图  v! s6 F" @1 p- S
    # Library! Y7 V, J: Y: y& X! }" D
    library(tidyverse)
    / F& ?5 I0 w2 [library(ggplot2)2 @% d& ~( C, i1 p0 r; W
    % c- }6 y/ }  r8 P
    # 读取数据0 [; i9 {  v, p" m8 Q; D. A) K
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )3 F: B" I. w. \1 U
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )$ e( V5 P* \$ c7 g7 W6 m
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    : t2 H0 ^0 H' |. ]* G1 tdata <- rbind(a,b,c)
    0 c* J; d7 [* A3 N: k' d  ]: _; D
    & A5 T7 V7 I* r% R! d#绘制基础的散点图$ M( X! @  W" K4 N0 W7 j" _
    ggplot(data, aes(x=x, y=y) ) +
    1 E* ~: T+ @/ e: A5 }  H6 {3 d5 C  geom_point()
      L4 G- p; j/ ^9 P
    ) s! Q4 V& X" J# s! g' G( U2 O- B, \1 L. z& ]' L/ q: z' ^, }
    * K4 M  L- e% |$ f% @( J8 l" Z
    2.绘制二维直方图。6 G% B2 t; F% X0 c+ l1 k  C# x
    ####二维直方图可使用geom_bin2d()函数绘制) F7 O  n; [9 W/ ^* D& O
    #二维直方图默认选项4 R; s  b' n; m7 j
    ggplot(data, aes(x=x, y=y) ) +
    $ _1 f( H: W% m3 ?5 Y" C% E  geom_bin2d() +
    + V3 f% E- x0 d7 \# n, r5 z: J  theme_bw()
    9 g8 o9 `% R$ K  e; i6 k/ N7 }5 p! x& S4 d
    # Bin大小控制与调色板' [7 h7 }/ k# I( f; Z  G6 g8 T
    ggplot(data, aes(x=x, y=y) ) +& C8 \" y7 [6 }+ Q/ D8 w
      geom_bin2d(bins = 70) +
    * E, e* N3 ~2 j; X1 |8 ~* ^* r& U  scale_fill_continuous(type = "viridis") +
    ; Z8 t9 z0 [# S0 v  theme_bw()9 l, R* t* D9 `" `# D0 Y

    % E/ p( ]' I( ^" [* @$ k0 l* o& a( O: g& z# n

    R语言|绘制Hexbin图

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

    4 i/ m8 }4 Z& S) A3 X; A3 k
    # Packages! `$ X; y& f  ]- F3 J1 x8 h& o- e9 l
    library(hexbin)
    7 L8 a/ e. F9 L  _3 Y" _library(RColorBrewer) % K9 X* |9 b( o. v

    ' v1 z' T) H6 ^- l# Create data
    & S+ M( v# [6 u" Z7 ~: x9 h1 Px <- rnorm(mean=1.5, 5000)" A& @- E; E% B+ F
    y <- rnorm(mean=1.6, 5000) 5 y1 J* Q4 ~3 a) _0 w! Q# ^5 Q) K
    & X6 J' U5 S2 s) H# J
    # Make the plot8 Q% d2 p6 K, X7 |4 G* _. A* J
    bin<-hexbin(x, y, xbins=40)
    . f8 x9 P* J7 ]* amy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))1 H/ K! c* C1 P$ n
    plot(bin, main="" , colramp=my_colors , legend=F )
    - {/ D: ]: x1 Z5 B! e/ x1 e
    % t2 e  V( y/ {
    " O8 P3 B9 V; p; e. j% z
    ; l, V8 g& ?: w0 D6 k
    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, 2025-5-12 03:52 , Processed in 0.424982 second(s), 51 queries .

    回顶部