我编写了一个闪亮的应用程序,允许人们从非常特定的数据文件中绘制预设图表。他们上传文件,选择要绘制的数据,并获得漂亮整洁的 ggplot 图片供下载。 我想根据表中的数据使其中一张图表更加动态。下面示例中 AirFlow 列中的变量可以有 3 个感兴趣的范围:等于/低于 2.5、等于/低于 5 和低于 10。我正在考虑使用 if_else 来指定 ylim 的参数,但我不确定如果可以这样使用的话。我不想创建另一个变量向量,shinyapps 对我来说已经很复杂了,自从我写了这个之后我就忘记了基础知识!
相关图表的代码(正常的 ggplot 格式)和以下错误:
> ggplot(df, aes(hrs, AirFlow))+
geom_line(size = 1, color = "#00B388")+
scale_x_continuous(breaks = breaks_extended(n = 10))+
if_else(max(df$AirFlow <= 2.5) == 1, ylim(0, 3), if_else(max(df$AirFlow <= 5) == 1, ylim(0, 6), ylim(0, 10)))
true[rep(NA_integer_, length(condition))] 中的错误:类型的对象 “环境”不可子集化
也许就这样做?:
yl = case_when(max(df$AirFlow)<2.5~3,max(df$AirFlow)<=5~6,TRUE~10)
ggplot(df, aes(hrs, AirFlow))+
geom_line(size = 1, color = "#00B388")+
scale_x_continuous(breaks = breaks_extended(n = 10))+
ylim(0,yl)
以下内容对您有用吗?
ggplot(df, aes(hrs, AirFlow))+
geom_line(size = 1, color = "#00B388")+
scale_x_continuous(breaks = breaks_extended(n = 10))+
ylim( 0, ifelse( max(df$AirFlow <= 2.5) == 1,
3 ,
ifelse( max(df$AirFlow <= 5) == 1,
6,
10)))