QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3285|回复: 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 v. T4 {2 x5 [

    $ l, p3 t% [7 {2 rR语言|绘制二维直方图
    " l1 J+ X( d% t" I* c: n, ?( G对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。" p8 \8 C' G# o
    8 C1 z9 D$ U9 |( z% c* x- z
    1.先绘制基础的散点图;$ U" D& w6 u" ~0 _
    ##二维直方图
    ' D5 S; z7 z! C8 e; p# Library
    , a) E0 F! r4 p8 g4 O5 _library(tidyverse)" `7 h. O' |- }! _& P- n0 w
    library(ggplot2)
    # @0 E/ d0 R6 g* |- v7 \2 `* x( _( Z9 h/ a) @6 N* |  q
    # 读取数据' Q6 O' j0 D. @% w* A
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )+ h  z3 R+ ~4 N' W
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    % b' @! P2 v' l$ W4 P" `% zc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    * r" w; x/ O$ fdata <- rbind(a,b,c)
    - w0 C) V1 b! A6 b) u& E  o; h1 [+ p4 e
    #绘制基础的散点图
    ' v+ a) l* [* Q8 Z1 @* y1 W: p4 jggplot(data, aes(x=x, y=y) ) +
    ( x. U5 q1 N' t2 q7 J" ]2 M5 r  geom_point()
    : N0 \& q" Y. K
    4 y/ Z: K& i0 d4 N4 Q  Y3 g  ?
    * b6 Q' X' _( P" @- X. h" ?
    * V$ m* e. o6 u* P2.绘制二维直方图。2 s- t5 f" B. E! l% [( X7 [' w
    ####二维直方图可使用geom_bin2d()函数绘制
    / b2 f; `6 h/ {: I/ m#二维直方图默认选项
    " j# A2 q) X, Q4 b) m8 W! Vggplot(data, aes(x=x, y=y) ) +
    ! d2 _8 s* m8 h* C: X  geom_bin2d() +) n4 w0 [! _9 A" V
      theme_bw()
    " x8 x% Z' d& o& ~' w0 w) J( `1 d6 |
    # Bin大小控制与调色板- T5 P" f) s* g3 v
    ggplot(data, aes(x=x, y=y) ) +" j$ v( g  d1 N9 D% m/ q% v( R
      geom_bin2d(bins = 70) +' k+ f8 I+ u* |1 t2 r
      scale_fill_continuous(type = "viridis") +. R, s0 }1 \2 A: V  R7 y' B2 c1 ^3 h
      theme_bw()
      ?. f% L6 w9 \# }7 h4 g  _7 `( H1 a5 G: s4 g
    ) N. |# L1 M6 M6 ?9 o. m( c3 N

    R语言|绘制Hexbin图

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

    - ^% M7 Y" s5 }. I1 a& i. p! h) y
    # Packages
    3 Q$ w+ j( b/ S' B1 |1 s" G+ |: Plibrary(hexbin): K2 P4 C* [" O5 T( m
    library(RColorBrewer) ( c2 @& M7 w; C9 ]
    * f) o, T5 V4 ?' \4 v  z8 [* }
    # Create data# y/ B2 D# I# I* _
    x <- rnorm(mean=1.5, 5000)
    5 J) B' F) o* I: r# y. l3 ty <- rnorm(mean=1.6, 5000)
    # [2 z+ |  [( I( i9 M9 q1 ~+ `* [6 U8 s- ~/ N. c1 n+ f
    # Make the plot5 m/ w7 a$ s0 \1 \" w
    bin<-hexbin(x, y, xbins=40)
    9 o+ U/ m0 X. _, {5 n) Cmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    0 G$ ?( I5 Y+ h% q0 b6 G# Oplot(bin, main="" , colramp=my_colors , legend=F ) 6 E: s* P# x* @( w) \
    / ^  y: V/ ~* S

    # I6 p/ j& s3 Q; K0 B6 I) Z
    2 X: X6 f# d( Z) I& y/ C, J
    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 11:46 , Processed in 0.513967 second(s), 51 queries .

    回顶部