Shrilaxmi M S
Shrilaxmi M S

Reputation: 171

Plotting heatmap with R and clustering

hello everyone I am trying to plot the heat map wanted cluster the plot and plot is not looking good wanted change the color i am newbie can any one tell me how can I plot heat-map with clustering values which are showing similar pattern cluster together my data data_link

what i tried simply tried to log normalize the data and plot the graph

library(ggplot2)
library(reshape2)

mydata=read.table("Test_data", sep="\t", header=TRUE)
melted_cormat <- melt(mydata)
head(melted_cormat)
melted_cormat$new=log2(1+melted_cormat$value)
ggplot(data = melted_cormat, aes(x=variable, y=ID, fill=new)) + 
  geom_tile()

is it posible increase each value cell size like below image

please suggest me Thank you

Upvotes: 0

Views: 4050

Answers (1)

Allan Cameron
Allan Cameron

Reputation: 173793

You can make a heatmap from this data, but I don't think it will be a very good way to visualize this much data. You have 287 rows in mydata, which means you will have 287 rows in your plot. This will make the individual rows difficult to make out, and it will make labelling of the y axis impossible.

The other issue is that approximately 99% of your values are under 1000, yet your highest value is almost 6000. That means that the scaling of your fill is going to be extremely uneven. It will be difficult to see much detail in the lower ranges.

If you want to see clustering you could use pheatmap instead of ggplot2, and I would probably do a log transform on the fill scale to reveal the details better. However, the problem with simply having too much data on a single plot persists.

mymatrix <- log(as.matrix(mydata[,-1]))
mymatrix[mymatrix < 0] <- 0
pheatmap::pheatmap(mymatrix)

enter image description here


EDIT

If you only plotted the first 10 rows of data, you can see this is more clearly like a heatmap:

pheatmap(as.matrix(mydata[1:10,-1]))

enter image description here

Or the first 30 rows:

pheatmap(as.matrix(mydata[1:30,-1]))

enter image description here

Upvotes: 2

Related Questions