r - 如何使用 'fileInput' 函数来提供上传的数据来绘制 ggplot?

标签 r ggplot2 shiny plotly

我正在尝试开发一个 Shiny 的应用程序,在其中我为用户提供上传数据文件(CSV 或 txt)的选项。然后我想根据这些数据渲染 ggplot 或plotly 。该数据集中有各种列。因此,我需要渲染各种图,并且由用户选择该数据集中的列作为 x 轴数据和 y 轴数据来渲染它们。我为用户提供了选择 x 轴和 y 轴数据列的选项。但是,当我提供用户选择的用于绘图的数据列时,输出不显示任何图形。

我的 plotly 代码:

df <- mtcars
ggplot(df, aes(x, y)) +
geom_point(aes(color='blue'))

我应该使用 aesaes_string 来渲染上传数据中的列吗?

最佳答案

我有一段时间遇到了这个确切的问题,试图以 Shiny 的方式显示 plotly 。考虑一下您可能会让用户选择一个 selectInput 下拉列表来选择列,对吧?这将向您的 ggplot 函数发送一个字符串 (chr)。

通常,您使用 aes() 来选择美学,但这不适用于字符串。为此,您需要 aes_string()。它的使用方式与aes()完全相同,但所有调用都是字符串。 See documentation for information .

因此,如果您的 ggplot 调用是:

ggplot(myData, aes(x=something, y=somethingElse)) +
    geom_point(aes(color=prettyColors))

数据集中的列 myData 为“something”、“somethingElse”和“prettyColors”,然后使用 aes_string(),您可以使用以下方法创建相同的绘图:

ggplot(myData, aes_string(x="something", y="somethingElse")) +
    geom_point(aes_string(color="prettyColors"))

关于r - 如何使用 'fileInput' 函数来提供上传的数据来绘制 ggplot?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60814883/

相关文章:

html - shinydashboard 标题中的位置标题

r - 处理摘要(模型)的结果

r - view_zoom_manual xmin 和 xmax 使用日期 r ggplot

R Shiny 。根据选定的输入分类变量更改散点图上的颜色

javascript - 如何通过javascript调用R Shiny 的html文件?

r - do.call 在函数中 - 找不到对象错误

r - 使用类别增长率填充 data.table 中的缺失值

r - 将网络数据从 R 传输到 Gephi

javascript - 如何使用 Shiny 的javascript函数?

r - 使用 x 轴上的日期更改 ggplot2 条的顺序