QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3245|回复: 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图的绘图代码。
    4 x0 r) n' {& @0 A- S# z0 H# b( T3 z( ^
    2 w% k+ ~% X2 t: f# m# ^/ j& HR语言|绘制二维直方图! y  Y" t2 a5 u
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。$ }( j/ k# |1 i6 Z* y$ `5 P

    * f# \7 k' ~& h' U1.先绘制基础的散点图;8 H) I3 M6 {3 l0 {: R0 y3 P& a- Y
    ##二维直方图
    $ C+ @( q# J9 g/ ?* _  ~) Q# Library0 J: B: H- n& z8 U3 O( K& \8 J
    library(tidyverse)
    7 }) H9 n, {# z/ o( W, Clibrary(ggplot2)
    6 Q- t+ {3 d0 p# E# Q
    " v: t/ W0 U4 R. K3 a# 读取数据
    ; Z" W( X" f+ g2 n0 A8 U4 L1 J9 J4 Ka <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    * q8 ]- q# l9 J5 c) Qb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    9 L' V" [+ J% L* [% ]$ jc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )! Y: b5 S. D+ d  C" G& Q/ a
    data <- rbind(a,b,c)  [2 i2 ?3 \2 x) j
    ! s* T5 n! F  X. K
    #绘制基础的散点图/ r; O: q2 V/ v3 e4 \6 Q
    ggplot(data, aes(x=x, y=y) ) +* l% F. q. W, I/ G/ |' Y1 _
      geom_point()
    . r' h2 b3 ~  s/ O! q' I, d) R
    6 G- x: v. S  K$ y+ U5 o! z# z* o, ~& m4 S9 B
    - t& e9 w4 L( Z& m% A; ?
    2.绘制二维直方图。+ y0 i- S; F- M! A- R2 r0 h
    ####二维直方图可使用geom_bin2d()函数绘制! ]3 F* x5 U1 o- X
    #二维直方图默认选项" K: S5 z) A: Q+ A0 u6 ^/ q# {9 T
    ggplot(data, aes(x=x, y=y) ) +4 Y7 [" S$ Q' e& _
      geom_bin2d() +
    7 _2 B' `+ d0 r! E  theme_bw()
    9 L4 r6 L' P6 u5 B/ v. ~) t  x
    ) U/ R# b7 b% |/ ]# Bin大小控制与调色板: m3 C( J8 v# ], s: y7 w
    ggplot(data, aes(x=x, y=y) ) +' I5 X- ]" \$ ]8 D/ Z& W
      geom_bin2d(bins = 70) +
    ( M4 c2 T8 B2 a: T. ~3 V  scale_fill_continuous(type = "viridis") +
    5 g+ i) G' f5 k0 i% h4 B  theme_bw()
    7 m% E+ |/ E3 ~' J: m3 e4 O1 |
    1 `5 i, S9 B% n" H5 {& S( |9 y- T' x2 B- @5 [5 Y& r2 h

    R语言|绘制Hexbin图

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


    6 V. S. Y6 C9 x; Z( N# Packages
    # Y1 _+ j! v& }, Q9 d9 r4 i4 @library(hexbin)$ D' A+ @& ^; L0 S. w
    library(RColorBrewer) 3 H& Y; c) P+ H6 }4 Z* k
    ( k4 G( B9 s/ ^2 t
    # Create data
    4 A+ F4 K6 [5 v* }: @- t2 Xx <- rnorm(mean=1.5, 5000)
    * b% [4 H$ `, a( ay <- rnorm(mean=1.6, 5000) & \" r1 x3 i5 i( ~. c
    + M! Z. m" Y; @: w7 o: _. [
    # Make the plot
    3 l' }1 A( P  ~' \bin<-hexbin(x, y, xbins=40)
    ! d# a8 {& }3 h0 h8 r6 ?+ |2 smy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral'))); _  t* c. D3 S. b6 D
    plot(bin, main="" , colramp=my_colors , legend=F ) - F$ ]" u3 i- H, k

    ) K% ~& ]+ t& m6 k6 y6 B9 X  O8 ?8 V! |
    ; |, X" x$ F: ?0 v
    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-20 23:10 , Processed in 0.396611 second(s), 51 queries .

    回顶部