QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3013|回复: 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图的绘图代码。
    ) s$ _3 u5 {$ Y( N2 ?; u3 H' G6 `' {5 }
    R语言|绘制二维直方图
    # c+ n( }! _- B6 c3 j" H1 T对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
      @7 c: E+ d" W" [7 F& ~/ u3 \0 D( r* Z/ M' y8 t8 p
    1.先绘制基础的散点图;1 q% i7 W7 W1 @3 ^3 p7 Q; Q! C) ^
    ##二维直方图
    6 {9 `' b0 P* ^7 H; I, w# Library
    , c( g! G" z/ S. j% Qlibrary(tidyverse)
    + v9 m  `$ g' U, r' v$ ^( ~% nlibrary(ggplot2)
    5 D/ e+ `$ e! F0 w* d3 n
    4 D% A; L: d' r9 @- L4 a# 读取数据
    ) x6 V1 z, s, Da <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )5 E' q( Q. M4 o+ J7 M
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    : q9 J3 T* `, `1 |- g# Yc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) ); C3 {. v" T) z
    data <- rbind(a,b,c)
    4 n" F2 x0 O& F% n; T
    1 E( L( d9 k) X. k( P# Z#绘制基础的散点图* ^9 q: y6 h! U
    ggplot(data, aes(x=x, y=y) ) +* e, \  c, z! Y  J# d1 n" M# W
      geom_point()
    4 p' |2 Z/ g9 w8 x2 o1 @
    - L0 B5 \' g6 _/ s
    * C" x$ C" T% z1 F; n
    % l4 H, c* Y0 U* K# `; A2.绘制二维直方图。2 x# s( x3 y# v. w
    ####二维直方图可使用geom_bin2d()函数绘制
    2 }% @- z+ q( S: U#二维直方图默认选项2 O5 L, J) i% A1 n$ U' k, J  a
    ggplot(data, aes(x=x, y=y) ) +
    , C) L# W" b* u- Z  geom_bin2d() +
    5 y: K1 G' \" Z2 Q  theme_bw()
    8 z4 C% f5 ?0 \9 \/ Y; m  R! @4 y" g* y9 U
    # Bin大小控制与调色板
    ) q7 M2 U5 a% @% S( _2 C/ h- oggplot(data, aes(x=x, y=y) ) +
    + I% }: [% t3 G) H( R  geom_bin2d(bins = 70) +1 _$ d! u  F( A, c8 V5 B9 W6 J
      scale_fill_continuous(type = "viridis") +
    8 P& |9 l! u& p5 ?, W  theme_bw()
    1 W2 L, z3 N- f( C( w% w) z1 L: S$ U

    ) {/ B! R# D$ ^: t

    R语言|绘制Hexbin图

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


    . n% H- b4 I7 c2 l0 k2 Q! D; u4 H8 i# Packages
    # m- l! x$ E/ ~6 J. s2 Xlibrary(hexbin)
    ; t7 |: H. j6 u: l5 j9 N3 B2 ulibrary(RColorBrewer)
    & M# ]/ n, r- V
    ! R* ~6 [+ K! I# Create data+ ?/ R: q! B7 E
    x <- rnorm(mean=1.5, 5000)
    2 J+ _3 [' ?2 @* @- E& wy <- rnorm(mean=1.6, 5000)
    2 W. S0 ]7 o+ L$ D  p. g3 N5 ?/ v/ {! O. q
    # Make the plot# J) D2 Y: W2 B& q& r- s/ J* H( a3 Y
    bin<-hexbin(x, y, xbins=40)1 R5 i9 x  o. N* n; S0 \2 g
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    ' D3 @# ?1 R) K) M% Y0 Gplot(bin, main="" , colramp=my_colors , legend=F ) . ~0 y: C5 A: A+ e3 ?) a/ G; ~4 F
    ' Z( A+ U2 X: o/ M- I& Z9 ]! d

    ( O4 ~8 B' S0 R' m0 y" I: i% m( ~4 H9 m. F: a  P; D7 s
    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, 2025-10-3 12:44 , Processed in 0.408393 second(s), 50 queries .

    回顶部