【问题标题】:Improper plotly graphs in rr中的不正确的绘图图
【发布时间】:2018-07-09 04:07:58
【问题描述】:

我试图使用来自here 的 plotly 包在 R 中实现一个 gapminder 示例 这完全可以正常工作,但是当我尝试更改数据时(这里我使用了我自己的数据集)并且它缩小了图表 Y 轴上的值。 这是代码

 library(gapminder)
    library(plotly)
    library(ggplot2)
    gg <- ggplot(gapminder_test, aes(gdpPercap, lifeExp, color = continent)) +
      geom_point(aes(size = pop, frame = year, ids = country)) +
      scale_x_log10()
    ggplotly(gg)

这就是图表的样子 正如您在 Y 轴上看到的,值已被缩小,我怎样才能使它像 gapminder 的类似物一样正确

【问题讨论】:

  • 在不知道您应用于数据集 gapminder_test 的更改的情况下很难诊断。请提供reproducible example
  • 数据比较大,要转载,所以想网上分享一下,dput也无济于事。
  • 仔细检查 lifeExp 是否为数字
  • @MLavoie 我不知道,这听起来可能很奇怪,但是当我从 excel 文件中获取输入时,它工作正常,之前输入来自 csv 文件
  • 当您阅读 gapminder_test 时,str() 是什么?

标签: r csv ggplot2 graph plotly


【解决方案1】:

我下载了您的文件并导入了它。为避免 lifeExp 列因空格(Excel 文件中的空单元格)而被强制转换为一个因素,您可以使用 na.strings = "N/A"

gapminder_test <- read.csv("gapminderData_share.csv", na.strings = "N/A")

如果已经导入,正如 MLavoie 指出的那样,使用 as.numeric 将其强制转换为数字:

gapminder_test$lifeExp <- as.numeric(gapminder_test$lifeExp)
gg <- ggplot(gapminder_test, aes(gdpPercap, lifeExp, color = continent)) +
  geom_point(aes(size = pop, frame = year, ids = country)) +
  scale_x_log10()
ggplotly(gg)

图表和动画看起来不错:

【讨论】:

  • 您如何缩放 Y 轴,在您的图表中显示 (0,200,400,600) 而在我的图表中显示 (5000,10000) ??
  • 我没有调整轴刻度。我阅读了您发布的文件。也许逗号分隔符不正确。但数据中肯定存在一些问题:预期寿命(超过 100 岁)和 GDP。一旦你解决了它,代码应该会产生正确的情节。
猜你喜欢
  • 1970-01-01
  • 2016-04-09
  • 1970-01-01
  • 2015-07-12
  • 1970-01-01
  • 2016-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多