交互可视化plotly之3D plot

library(plotly)
mtcars$am[which(mtcars$am == 0)] <- 'Automatic'
mtcars$am[which(mtcars$am == 1)] <- 'Manual'
mtcars$am <- as.factor(mtcars$am)
head(mtcars)

分别以wt,hp,qsec为xyz轴作图 add_markers(p, x = NULL, y = NULL, z = NULL, …, data = NULL, inherit = TRUE)

  • p: a plotly object
  • data: A data frame (optional) or SharedData object.
  • inherit: inherit attributes from plot_ly()?
  • x: the x variable.
  • y: the y variable.
  • z: a numeric matrix

基础的3D scatter plot

fig <- plot_ly(mtcars, x = ~wt, y = ~hp, z = ~qsec, color = ~am, colors = c('#BF382A', '#0C4B8E'))
fig <- fig %>% add_markers()
fig <- fig %>% layout(scene = list(xaxis = list(title = 'Weight'),
                     yaxis = list(title = 'Gross horsepower'),
                     zaxis = list(title = '1/4 mile time')))

fig

3D scatter plot添加颜色范围

fig <- plot_ly(mtcars, x = ~wt, y = ~hp, z = ~qsec,
               marker = list(color = ~mpg, colorscale = c('#FFE1A1', '#683531'), showscale = TRUE))
fig <- fig %>% add_markers()
fig <- fig %>% layout(scene = list(xaxis = list(title = 'Weight'),
                                   yaxis = list(title = 'Gross horsepower'),
                                   zaxis = list(title = '1/4 mile time')),
                      annotations = list(
                        x = 1.13,
                        y = 1.05,
                        text = 'Miles/(US) gallon',
                        xref = 'paper',
                        yref = 'paper',
                        showarrow = FALSE
                        ))
fig

3D气泡图

data <- read.csv("https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv")

data_2007 <- data[which(data$year == 2007),]
data_2007 <- data_2007[order(data_2007$continent, data_2007$country),]
data_2007$size <- data_2007$pop
colors <- c('#4AC6B7', '#1972A4', '#965F8A', '#FF7070', '#C61951')

fig <- plot_ly(data_2007, x = ~gdpPercap, y = ~lifeExp, z = ~pop, color = ~continent, size = ~size, colors = colors,
             marker = list(symbol = 'circle', sizemode = 'diameter'), sizes = c(5, 150),
             text = ~paste('Country:', country, '<br>Life Expectancy:', lifeExp, '<br>GDP:', gdpPercap,
                           '<br>Pop.:', pop))
fig <- fig %>% layout(title = 'Life Expectancy v. Per Capita GDP, 2007',
         scene = list(xaxis = list(title = 'GDP per capita (2000 dollars)',
                      gridcolor = 'rgb(255, 255, 255)',
                      range = c(2.003297660701705, 5.191505530708712),
                      type = 'log',
                      zerolinewidth = 1,
                      ticklen = 5,
                      gridwidth = 2),
               yaxis = list(title = 'Life Expectancy (years)',
                      gridcolor = 'rgb(255, 255, 255)',
                      range = c(36.12621671352166, 91.72921793264332),
                      zerolinewidth = 1,
                      ticklen = 5,
                      gridwith = 2),
               zaxis = list(title = 'Population',
                            gridcolor = 'rgb(255, 255, 255)',
                            type = 'log',
                            zerolinewidth = 1,
                            ticklen = 5,
                            gridwith = 2)),
         paper_bgcolor = 'rgb(243, 243, 243)',
         plot_bgcolor = 'rgb(243, 243, 243)')

fig

image.png

欢迎关注~

参考: https://plot.ly/r/3d-scatter-plots/ https://plot.ly/r/plotly-fundamentals/ https://rstudio-pubs-static.s3.amazonaws.com/276715_c4b23f88506d48bdbaa84d1a1eae2153.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R中极树状图实现

    生信编程日常
  • Shiny学习(二)

    Shiny使用fluidPage创建一个显示界面,该显示界面可自动调整为用户浏览器窗口的尺寸。还可以通过在fluidPage函数中设置元素对用户界面进行布局。

    生信编程日常
  • SCENIC||单细胞基因调控网络推断与聚类

    (a)使用GENIE3或GRNBoost推断转录因子与候选靶基因之间的共表达模块。RcisTarget可识别那些调节子的结合基序在目标基因中显着富集的模块。并创...

    生信编程日常
  • Web自动化测试 | 充分利用浏览器记录的信息

    一切和效率提升,质量提高相关的工具/脚本都隶属于自动化的测试范围,所以这里要介绍的不是单纯的UI自动化和接口测试脚本。

    京东技术
  • 让Laravel/Lumen队列消费Non-Laravel queue job

    一句话概括需求就是:Allow Laravel to process non-laravel queue job.

    andychai
  • 当公司倒闭时,你在干什么?

    说出来你可能不信,松哥竟然也经历过公司倒闭的事!最近看到我 GitHub 上开源的 vhr 项目 star 数即将过3k,不禁想起做这个项目时候的事,刚过去一年...

    江南一点雨
  • 借开放平台连接时代

    “互联网+”写进2015年的《政府工作报告》,使其一举成为2015年的中国热词;而伴随国家发改委着手“互联网+”行动计划的制定,可以预见,中国社会发展即将进入“...

    Frank
  • 如何在CM中启用YARN的使用率报告

    CDH的高级功能"群集利用率报告"(Cluster Utilization Report)是整个多租户方案体系里的一部分,可以用来查看租户的资源使用情况,并可以...

    Fayson
  • 记一次惊心的网站TCP队列问题排查经历

    此时问题已经影响到整个网站的正常业务,我的那个心惊的呀,最主要报警系统没有任何报警,服务运行一切正常,瞬时背上的汗已经出来了。但还是要静心,来仔细寻找蛛丝马迹,...

    顶级程序员
  • 记一次惊心的网站TCP队列问题排查经历

    作者:刘晓明,互联网公司运维技术负责人,拥有10年的互联网开发和运维经验。一直致力于运维工具的开发和运维专家服务的推进,赋能开发,提高效能。

    Python中文社区

扫码关注云+社区

领取腾讯云代金券