r ggplot x轴颜色渐变标签/值

时间:2015-01-30 14:38:49

标签: r graph ggplot2

我目前有一个带有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值,如下图所示。

enter image description here enter image description here

类似图表的东西会很棒!

我使用的代码粘贴在

下面
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))

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/