【发布时间】:2020-05-02 18:02:18
【问题描述】:
刚开始使用 R 并按照教程创建瀑布图。它在使用二分值时效果很好:
col <- ifelse(tumor_tidy_wp$zr == "YES", "#1B9E77", "#D95F02")
barplot(tumor_tidy_wp$maxchange, col=col, border="Black", space=0.5, ylim=c(-75,75),
main = "Waterfall plot", ylab="Change from baseline (%)",
cex.axis=1.2, cex.lab=1.4, legend.text=c("Yes","No"),
args.legend=list(title="Uptake 89Zr on any time-point", fill=c("#1B9E77","#D95F02"), border=NA, cex=0.9)) +
theme(axis.line.x = element_blank(), axis.text.x = element_blank(), axis.ticks.x = element_blank(),
axis.title.y = element_text(face="bold",angle=90))
我也有这个值的连续比例,而不是 YES/NO 我想有一个渐变,但我不能让它工作。我尝试使用 scale_fill() 的版本但失败了。还有其他方法吗?
【问题讨论】:
-
stackoverflow.com/editing-help。请注意,
'''(三个单引号)不是代码围栏,它是三个反引号,后跟一个语言引用,如```lang-r,都在自己的行上(后跟换行符)。关闭代码围栏只是他们自己的行上的三个反引号。格式化代码有助于可视化流程问题(文本、代码、文本),并使代码在语法上易于阅读(换行符、缩进等)。 -
您能否提供足够的数据样本?最好的方法是使用
dput,也许是dput(head(tumor_tidy_wp,10)),认识到这会产生一个更小的图表(但仍然可能让你明白这一点,以便你应用到你的整个框架)。这样做的关键(并且责任完全在您身上)是提供您的数据的代表性和明确样本。在控制台上复制tumor_tidy_wp的外观有时或经常是不够的(由于空格、factors 等),因此使用dput通常会更好。 -
我从未见过以这种方式将基本图形 (
barplot) 与ggplot2::theme组合在一起的示例。你确定它正在做你打算做的事情吗? -
抱歉,我不确定如何/是否可以共享我的数据。这是一个相对简单的数据集,有 40 个 obs,相对于基线的变化百分比和 PET 扫描的摄取值在 0 到 10 之间(对于梯度)。我使用了本教程:r-bloggers.com/waterfall-plots-what-and-how。很确定 ggplot2 scale_file 选项可能不正确,但不知道我是否可以修复我所拥有的,或者我是否应该从 ggplot 图重新开始(但还不能让条形图与 ggplot 一起使用)
-
我修好了!我从使用 barplot 更改为 ggplot + geom_bar + scale_fill_gradient2 就像
ggplot(data=tumor_tidy_wp, aes(x=x, y=maxchange, fill=IA)) + geom_bar(stat="identity") + scale_fill_gradient2()
标签: r bar-chart gradient waterfall