QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3283|回复: 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图的绘图代码。# G1 c3 d2 t% P1 X  m

    $ _( s; _- B4 N: l$ P+ [R语言|绘制二维直方图7 T/ q) a/ Y2 q4 e
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    + I( W4 n7 {" ~8 N6 [8 x
    7 C5 l* ]" E# G$ O" r. B' _1.先绘制基础的散点图;
    ) r, q3 Z+ y/ z6 S##二维直方图7 B9 `0 i- `% r8 ^
    # Library* v. m% Q' m6 y" V8 K6 @
    library(tidyverse)
    2 P! G- T$ w2 K% I* Y5 u1 Elibrary(ggplot2)
    ) l5 c  ]4 k! ?" x
    2 M, Q( U# ?* ^  ?7 z- Y5 B# 读取数据
      h# z& `6 C" ~) E" aa <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )4 t2 b  I7 K6 I& f3 s9 ~: P. v
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    3 K" {& ~* j- [$ [c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )4 x5 ]& r/ t1 L! j2 E( U& b( _
    data <- rbind(a,b,c)" T8 Z8 Y( s; p

    2 [% D2 B! x0 ]; \, _1 M#绘制基础的散点图
    - B3 b+ u  C- Y) I( B  Y  e5 uggplot(data, aes(x=x, y=y) ) ++ [* Q. W- T' e% \! C0 _2 c. y
      geom_point()
    ! q9 K6 V5 z8 M% s3 ?0 y5 d5 A: ]! A$ V
    * s! V1 R- U# p' h
    & x6 f/ O! D" K5 A
    2.绘制二维直方图。1 b6 s4 S2 s" z) K4 ]( ]
    ####二维直方图可使用geom_bin2d()函数绘制) x0 F- |& O6 |8 P. |
    #二维直方图默认选项
    ) _1 z) t* v# Z: _ggplot(data, aes(x=x, y=y) ) +
    9 N  L; F1 F8 ?  geom_bin2d() +. V. u$ ?: ]& p
      theme_bw(); N+ C! D3 h- g; M/ d% e9 t5 ?% q
    5 L: z. j+ L8 G6 O8 Z
    # Bin大小控制与调色板
    9 T) C( \- H% ~+ y! ~ggplot(data, aes(x=x, y=y) ) +
    ) [) w: P+ e* u- L0 k, ?' q& v( P  geom_bin2d(bins = 70) +# [1 R' E5 r4 S3 t7 s3 M
      scale_fill_continuous(type = "viridis") +
    . e9 L' o( K, w  theme_bw()# ~; m! t& W* [! j9 u: F* v

    ! O9 J* B' p' h" ?* u
    ( Y& V( ^5 m" V9 p7 Q: J# P

    R语言|绘制Hexbin图

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

    + Q0 ^* Q1 l* m  W# O+ ?
    # Packages
    6 C# u* j6 X# Xlibrary(hexbin)* g0 P$ }! J$ c% Q
    library(RColorBrewer) 8 c$ S: B: h0 P1 [3 F, {

    7 X! z  R4 X5 @! \  J: c5 g/ b# Create data$ \7 c0 D' z7 Z/ V/ }
    x <- rnorm(mean=1.5, 5000)
    2 z; i* S  Z3 C- m3 n9 O4 @y <- rnorm(mean=1.6, 5000)
    6 W0 p! ?3 y6 _/ h0 |
    % G* u& {7 H5 x. _/ v- R5 C# Make the plot0 J: N5 U7 h" u& h. i: k3 X
    bin<-hexbin(x, y, xbins=40)
    ! q2 Q0 F. }0 T8 lmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral'))): x3 G9 E! @  k7 X/ l" k
    plot(bin, main="" , colramp=my_colors , legend=F )
      i7 Q+ I- e6 F8 s4 k: j; s
    ' R0 i4 C! a2 S! h  G( C- M+ ^5 ]$ P% c: a

    8 v4 ?* k+ l: `" \
    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 08:42 , Processed in 0.376540 second(s), 51 queries .

    回顶部