我目前有一个带有ggplot2的绘图,其中每个坐标都有一个由颜色渐变表示的值。我的x值是有序的,无论如何只是为x轴标签表示一个单独的渐变? 例如
x y z
7.5 55 1000
7.5 20 2000
7.5 10 3000
3 70 2500
3 50 10000
3 25 1300
用x,z绘制图形,y为梯度颜色。我想将颜色渐变分配给沿x轴的x值,如下图所示。
类似图表的东西会很棒!
我使用的代码粘贴在
下面plot_data=read.table("Finalfile.txt",sep="\t",header=T)
plot_data=plot_data[,1:8]
#order data according to expression followed by gene id
order_data=plot_data[order(plot_data$exp,plot_data$gene,decreasing=TRUE),]
#convert gene ids to numeric, same number for each gene id
plot_data=transform(plot_data,id=as.numeric(factor(gene)))
#x y plot
ggplot(plot_data, aes(gene, TSS, colour=met)) +
geom_point(shape=15) + ylim(0,10000)+
scale_colour_gradient(low="blue", high="red")+theme(axis.text.x = element_text(angle = 90, hjust = 1))
答案 0 :(得分:0)
我已将您的请求解释为您想要证明数据在x轴上的传播。
我认为这可能会有所帮助。
require(ggplot2)
library(gridExtra)
x <- c(7.5 ,7.5 ,7.5 ,3 ,3 ,3 )
z <- c(1000,2000,3000,2500,10000,1300)
y <- c(55 ,20 ,10 ,70 ,50 ,25 )
data <- data.frame(x,z,y)
main <-ggplot (data, aes( x = x, y = z, colour = y))+
geom_point() +
scale_color_gradient(limits = c(0, max(y)))+
theme(legend.position=c(1,1),legend.justification=c(1,1))
density.x <- ggplot(data, aes(x), fill = "blue")+
geom_density(width = c(0, max(y)), alpha = 0.5,binwidth =1, position = 'identity', fill = "blue")
grid.arrange(density.x, main, ncol = 1, nrow =2 , heights= c(1,4))
这不会提供您最初请求的颜色,但仍会传达相同的信息。您可以尝试使用不同的geoms进行不同的表示。
请参阅此处以进一步扩展主题:http://www.r-bloggers.com/ggplot2-cheatsheet-for-visualizing-distributions/