QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3591|回复: 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图的绘图代码。" U9 p1 M0 g! J6 m# X% i. L
    ; U( O: G5 \) f& C
    R语言|绘制二维直方图  `4 u/ y# k* S
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    , U! N1 J( H; @( G8 ~# |9 Y8 A
    $ K- s) d- r: ^; U( \8 K1.先绘制基础的散点图;
    7 {2 l7 d1 B, Q4 m) V% W##二维直方图
    5 k$ G4 L1 n. ]* y# Library" x1 z* Z4 b: n. [7 X- r1 w$ y
    library(tidyverse)8 D: ^. ^) O- C
    library(ggplot2)
    ; C$ v2 m( T; p1 Q9 Q$ T4 O
    & U( U$ k$ h2 p/ E# 读取数据
    4 C2 g6 q+ N5 L) i6 Ma <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    2 F) W0 Y/ _' U/ [1 d2 [, Fb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) ); Q' ?" c% R/ H, h% q: c6 o/ C
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
      ?* _! u( C. ?* a. d  Q+ J9 [5 xdata <- rbind(a,b,c): `: C2 [6 {# {0 ~# A4 m( o
    ' }$ s" `6 M6 n0 B
    #绘制基础的散点图. \( s# y2 `+ d
    ggplot(data, aes(x=x, y=y) ) +9 V# a. w7 `4 Z+ ~. z& Q- r
      geom_point()
      e9 k& E$ y! ?  e8 V+ {! }& @- v# E
    ; `* i+ D, }% h
    9 u4 o  V" @; Q. ]4 A! M5 f7 G, [& I) E2 @( J4 v) u
    2.绘制二维直方图。0 E- s- R" n1 |% U8 S' G
    ####二维直方图可使用geom_bin2d()函数绘制
    5 h( e+ i! K. e! v6 w#二维直方图默认选项
    ! T6 f; Z& V$ O2 {! Y& nggplot(data, aes(x=x, y=y) ) +
    4 Q; _0 F8 L. u& ^  geom_bin2d() +" m+ P$ i# W5 o3 ]1 `3 z$ {* a# c
      theme_bw()
    , E! M5 D- e# V* U3 J: {& |. W9 N
    # Bin大小控制与调色板. v( f4 X! T& }# V3 W
    ggplot(data, aes(x=x, y=y) ) +4 ^# D- T2 G1 Z6 ]
      geom_bin2d(bins = 70) +/ p' o  \. g! {& X+ o9 C( m
      scale_fill_continuous(type = "viridis") +5 A$ I: L. d7 t) n2 b2 D+ y
      theme_bw()
    4 Y! r/ o! m0 |: i% L! R# m1 Q: r" F
    - [2 |3 B$ K% Q9 j

    R语言|绘制Hexbin图

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


    0 e% t, n0 w- ~$ q+ }# Packages1 [* j3 U2 y! ^' e; v3 ~" E! T8 @
    library(hexbin)
    ! R: M9 r6 U) \# glibrary(RColorBrewer)
    ; M3 i4 n. ]2 Q: K, ~% U& O1 K. x* f" G# d( _2 A' a
    # Create data
    # e. \* ~( Z  T, L7 I- Yx <- rnorm(mean=1.5, 5000)
    ' q0 \3 f" D0 ?6 ^4 t* @  vy <- rnorm(mean=1.6, 5000)
    1 j* p# S+ k* w' T, a, Y- l
    ( Z% C+ \* R; x( A) t5 E1 q: ]$ d- F1 g  K# Make the plot5 G6 b$ x; K. R
    bin<-hexbin(x, y, xbins=40)
    6 u- e& U* |1 y6 t- Cmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    ) E  k( M, `- l! |( k+ y4 A# |/ Iplot(bin, main="" , colramp=my_colors , legend=F ) - U& f& p1 W1 v/ Z! T. I1 m8 x

    # z4 K+ m4 a$ p' d6 \% l* }
    . K  R$ i- R4 C
    ) L, ]7 i! ?/ L; v
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    fastpost qq
    收缩
    • 电话咨询

    • 04714969085

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-10-31 16:16 , Processed in 0.247958 second(s), 50 queries .

    回顶部