【问题标题】:ggplot2 3D Bar Plotggplot2 3D条形图
【发布时间】:2015-01-03 19:56:51
【问题描述】:

我知道这听起来很基本,但是现在已经搜索了一个多小时而没有成功。我只是想使用'ggplot2'包在'R'中绘制一个3D条形图。我的数据框看起来像这样:

 x   y     z
t1   5   high
t1   2   low
t1   4   med
t2   8   high
t2   1   low
t2   3   med
t3  50   high
t3  12   med
t3  35   low

我想在上面画出这样的东西:

任何帮助都非常感谢!

【问题讨论】:

  • 您应该意识到,R 爱好者将 Excel 视为如何(正确)做事的丰富示例来源,并且 3D 条形图是最不推荐使用的策略之一用于传达准确的定量信息。
  • @BondedDust 哈哈!是的,我确实意识到这一点。可能是我根本找不到任何例子的原因。但我仍然想尝试,您的任何指示都会有所帮助……我只需要知道如何将第三个轴添加到我的 geom_bar()
  • 我认为您无法使用ggplot2 制作 3D 条形图。就像在我们的宇宙中超过光速一样,哈德利宇宙的基本定律只是禁止了一些事情。无论如何,按颜色分组的线图将提供更多信息。例如,使用上面列出的数据试试这个(我将数据框命名为 dat):ggplot(dat, aes(x, y, group=z, colour=z)) + geom_line() + geom_point().
  • 必须是ggplot吗? (如果没有,请查看?latticeExtra::panel.3dbars 中的示例。

标签: r plot 3d ggplot2 bar-chart


【解决方案1】:

如 cmets 中所述,3D 图通常不是一个好的选择(当有其他选项可用时),因为它们往往会提供扭曲/模糊的数据视图。

也就是说,您可以通过以下方式使用 latticeExtra 根据需要绘制数据:

d <- read.table(text=' x   y     z
t1   5   high
t1   2   low
t1   4   med
t2   8   high
t2   1   low
t2   3   med
t3  50   high
t3  12   med
t3  35   low', header=TRUE)

library(latticeExtra)

cloud(y~x+z, d, panel.3d.cloud=panel.3dbars, col.facet='grey', 
      xbase=0.4, ybase=0.4, scales=list(arrows=FALSE, col=1), 
      par.settings = list(axis.line = list(col = "transparent")))

【讨论】:

  • @maryam - 刚刚注意到z 的级别排序不正确。您可以通过在创建因子时明确说明级别顺序来纠正此问题。
  • 哦,是的,它是 med -> low -> high 而不是 high -> med -> low 感谢您的更正 :)
  • `y~x+z' 是什么意思?
  • @DavideChicco.it - 它说要针对xz 绘制y(其中这些是数据元素d)。
  • @jbaums 谢谢,我应该阅读文档。另一个小帮助:我怎样才能增加平行六面体侧面的尺寸?谢谢!
猜你喜欢
  • 2021-03-14
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 2018-09-15
  • 2021-01-17
  • 1970-01-01
  • 1970-01-01
  • 2017-10-24
相关资源
最近更新 更多