簡體   English   中英

繪制包含所有行名稱和列名稱的圖形

[英]Plot a graph with all row names and column names

我有一個包含5個列名和10個行名的數據框。 此數據框中的值由-1到1之間的數字和NA組成。

                Comp.1 Comp.2 Comp.3 Comp.4    Comp.5
Param1              NA     NA     NA     NA        NA
Param2              NA     NA     NA     NA 0.9035769
Param3       0.9810636     NA     NA     NA        NA
Param4              NA     NA     NA     NA        NA
Param5              NA     NA     NA     NA        NA
...
Param10              NA     NA     NA     NA        NA

我想繪制一個圖形,其中所有行都在Y軸上具有行名稱,列在X軸上具有列名稱。 此外,值表示某種顏色的點,並且該顏色的陰影確定值更接近1或-1。 NA可以是交叉標記或可以忽略。

提前致謝!

我想我不完全確定你在尋找什么,但我想這樣做的一種方法是:

library(reshape2)
df$row.names<-rownames(df)
long.df<-melt(df,id=c("row.names"))
plotted<-ggplot(long.df,aes(x=row.names,y=variable,color=value))+geom_point()

注意::如果您有多個行和列值組合,那么這將導致過度繪圖。 這可以通過geom_jitter()facet_wrap() / facet_grid()

注2 ::如果你想要每個楊力的答案更多的熱圖輸出並且沒有重疊數據你可以使用geom_tiles()geom_raster()代替geom_point()

如果我理解正確你基本上想要一個熱圖。 在這種情況下,您的問題可能是重復的 ,但我會根據您擁有的特定數據框向您展示一些做熱圖的方法。

假設這是您的數據,為簡單起見,我將減少行數和列數:

df <- data.frame(Comp.1 = c(0.3, -0.2, -1, NA, 1),
             Comp.2 = c(-0.4, -0.1, NA, 0, 0.6),
             Comp.3 = c(0.2, NA, -0.4, 0.3, NA))
row.names(df) <- c("Param1", "Param2", "Param3", "Param4", "Param5")

基地R.

首先,轉換為矩陣:

df_matrix <- data.matrix(df)

接下來,您可以使用heatmap()函數,如下所示:

heatmap(df_matrix, Rowv=NA, Colv=NA, col = cm.colors(256), scale="column", margins=c(5,10))

heatmap1

您可以使用col參數更改使用的顏色。 還有其他內置的調色板,如rainbow()heat.colors()topo.colors() ,但它看起來仍然不會很好,所以你應該嘗試其他包,例如......

Plotly包

安裝plotly包,然后使用以下代碼:

library(plotly)

plot_ly(
    x = names(df), y = row.names(df),
    z = df_matrix, type = "heatmap"
)

heatmap2

並且,如果要自定義顏色,只需添加colors = <Insert your color range here>作為額外參數。 此熱圖也是交互式的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM