QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3246|回复: 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图的绘图代码。
    $ n1 l# n  S# y# N0 o$ ]
    4 |6 N6 ?7 o* }1 G# w/ gR语言|绘制二维直方图: Y. q1 o! y' q
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。" v  m: x; i2 |0 {

    6 y. Y' e2 E; \$ v0 B$ W+ |* S1.先绘制基础的散点图;
    + s. u2 D5 w6 F, q5 y  |! B  S1 `- p9 l##二维直方图6 B* B4 u3 o# k
    # Library
    ) `2 u. ]1 i, F9 c- `library(tidyverse)
    7 E. _4 [) C7 mlibrary(ggplot2)
    3 h- e+ H! ]3 N& T5 ?
    8 G, C3 f& a/ L8 ^/ l1 t1 }# 读取数据& \. Q, x4 B9 P5 A$ J* |% Z' d9 }
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    ' D4 f0 u1 n; A' O. Z, vb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )+ _8 M: C! r9 U/ m6 A! L
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    . T0 X. k9 f' R1 Bdata <- rbind(a,b,c)
    - T: q1 M" p6 H" j7 {5 T6 A; q# d5 S% e1 l8 Y
    #绘制基础的散点图$ }( o9 y" Y5 k9 Y
    ggplot(data, aes(x=x, y=y) ) +
    + M% a8 ]9 p8 H& p% ?+ M8 W  geom_point()5 z+ X  _  u) H" _

    5 e. L+ ?# Y+ s# m) }2 B# @% N- r) V! n6 S6 L5 O& |& M0 w

    , E0 E; ~7 S8 h  E2.绘制二维直方图。; Y) e( \4 M  ~' p
    ####二维直方图可使用geom_bin2d()函数绘制
    5 S% H# l$ @$ W, F% _#二维直方图默认选项
    0 U" ?2 J6 f$ g* ?! N6 fggplot(data, aes(x=x, y=y) ) +$ D$ B- K! {- q/ ~4 _' d" Y  p0 R$ Z
      geom_bin2d() +" g' d, j! y1 ^
      theme_bw()
    - F/ G7 t5 G, [" ^9 I9 w! M3 k$ v$ b& ]9 s; K
    # Bin大小控制与调色板8 S. @  \3 A) h7 o
    ggplot(data, aes(x=x, y=y) ) +' ~1 [! J+ B5 ^0 W$ G! y; ^. z5 v
      geom_bin2d(bins = 70) +& d# u9 I4 G" A5 ^+ M0 l
      scale_fill_continuous(type = "viridis") +! O5 ~. u$ H0 \9 i( p( ~) N
      theme_bw()
    4 C+ J6 _% M0 |+ x  R3 T- J5 q- z( T/ w, R
    ! N7 p. y, {* A2 `6 W

    R语言|绘制Hexbin图

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


    - C) X* z5 n0 o# Packages/ o: `! U+ M' O( q6 C1 O9 K* x
    library(hexbin)
    " T6 M7 N; ?9 u  clibrary(RColorBrewer) $ `7 F8 R0 I7 Q& b% T

    1 \; c0 {( j( l6 c# Create data
    7 y6 W9 P0 F# \1 e# nx <- rnorm(mean=1.5, 5000)- M9 P  k# w) E$ z
    y <- rnorm(mean=1.6, 5000) . d# v0 g. |  h' m: b- [
    % I: s, m' |& _" \
    # Make the plot3 V" M& F( ^; p
    bin<-hexbin(x, y, xbins=40)
      q$ o  D4 j$ L2 n2 nmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))" Z3 H. }- h6 m7 M  b8 }- H
    plot(bin, main="" , colramp=my_colors , legend=F )
    & E8 s' y3 ^. |  T
    / f  g- b9 H4 b2 H, d& Q) i2 v" T* N6 v6 o
    . W) \+ c3 F6 V! k: ~0 D' W4 L' t
    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-4-22 00:34 , Processed in 0.420056 second(s), 51 queries .

    回顶部