QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3422|回复: 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 ~7 f* s. `6 g, ~3 L. S
    & o3 P- ]3 U. L; s" q
    R语言|绘制二维直方图2 G% c4 t$ j6 k0 B0 B
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。: [2 Y' ]' T) Q- m, r% |; [

    . H; m5 K4 I( J1.先绘制基础的散点图;; |% p9 c/ \2 ?! P% H3 e/ b
    ##二维直方图
    + R7 N. i) n& [( d) C# Library
    + Y" |; r0 y& B4 S3 Alibrary(tidyverse)
    # M' |: A% w# |! N+ |; Plibrary(ggplot2). }1 \, W2 L( T! T: e

    % ~$ o0 Z; F8 V" K  j1 ~4 a7 k# 读取数据
    ) ^0 G/ s! {; j: ]! X3 ?% Da <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    $ |  F3 o7 S5 m$ \0 Zb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    5 A- s3 i6 V% a1 @# L& Uc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    6 l8 T: Z- ~+ z3 }4 adata <- rbind(a,b,c)9 Y9 G/ L: }! x. h1 o- s% _9 \

    , y+ k5 Z3 j( r4 m" W" s6 ~#绘制基础的散点图' f7 Z2 u( E/ F7 Q, D5 n
    ggplot(data, aes(x=x, y=y) ) +
    1 U9 ]( Q. g1 b0 x! ~+ X/ Q  geom_point(), d1 ^4 y( r5 a5 P4 N$ @* G
    4 H3 O0 c- a7 s- X3 i0 u

    - ~, [. m. p. d* Q. G# H
    ( ^, I2 l: ?2 E" M1 h; Z1 ~2.绘制二维直方图。
    ; w  l3 W. f* `####二维直方图可使用geom_bin2d()函数绘制
    . k( I/ ~) V& u! o3 E0 |#二维直方图默认选项
    0 m0 f3 |, F6 [9 x0 l/ K: wggplot(data, aes(x=x, y=y) ) +
    2 U( e3 Q0 w1 M( ?- F  geom_bin2d() +
    * A1 v. |  O+ J3 \0 d% E9 [  theme_bw()
    ; V1 U8 q) J1 k  c9 u
    ) ?/ Q+ Q2 o9 g& ?  x. i& F% q# Q# Bin大小控制与调色板
    5 ^9 p  m$ Z: y+ ?- Fggplot(data, aes(x=x, y=y) ) +
    ( a* K4 o9 q3 c  geom_bin2d(bins = 70) ++ O: L) N; k0 X: R& z1 l4 n. f9 {' x
      scale_fill_continuous(type = "viridis") +
    . C4 X: K$ b1 S( ?" P  theme_bw()
    : g  o, Y' s. ]# m" C8 `
    * h. z- G  B/ B! ]: ^& I$ g6 i" l) q& I1 u, i

    R语言|绘制Hexbin图

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

    ' z) I4 l1 n% k& u  R5 I9 L
    # Packages
    2 i' b1 e% m" ]  A/ `library(hexbin)
    % b, e! ]8 a. O! A$ [  l& nlibrary(RColorBrewer)
    : b" F* n0 N5 F/ M: f( w& I. R  L( L2 o& o; s9 o( ^8 C
    # Create data
    3 R* A/ e% [* W1 Sx <- rnorm(mean=1.5, 5000)
    ! t+ p2 ^, m, z) ty <- rnorm(mean=1.6, 5000)
    ! Q  n$ y' X- ~) `9 p' E0 x$ v4 R8 b% j8 o( E1 y# w( ]& A) q+ M) h
    # Make the plot6 |5 f. w1 i4 a& P1 I9 \( a
    bin<-hexbin(x, y, xbins=40)) W* g/ n! [, t8 T+ C" ^1 L0 k
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    & l: Q9 r$ m( n0 z( {" i8 }plot(bin, main="" , colramp=my_colors , legend=F ) 8 Y, U3 V* j6 r* K9 R6 H* K" p. o
    ! s8 h, ~0 c$ @7 S. j  f2 P. z
    * c5 b! N* `8 t' s

    ; q. {7 p' |0 E: Q! s
    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-9-5 09:55 , Processed in 0.409223 second(s), 51 queries .

    回顶部