我有一個如下所示的資料框 (df):
| 基因 | p_value | p_value_dif | p 值類別 |
|---|---|---|---|
| 一種 | 0.06 | 0.01 | 非簽名 |
| C | 0.07 | 0.02 | 非簽名 |
| d | 0.008 | - 0.03 | 信號 |
| 電子 | 0.009 | - 0.04 | 信號 |
我使用以下代碼創建了一個發散條形圖:
ggplot(df, aes(x=gene,
y=p_value_dif ,
label=p_value_dif ))
geom_bar(stat='identity',
aes(fill= (as.factor(p_value_dif)),
width=0.9)
scale_fill_manual("legend",
values = c("Significant" = "black", "Insignificant" = "orange"))
coord_flip()
問題是只有我的圖例將顏色更改為黑色和橙色。條形保持灰色。我該怎么做才能使圖例中的顏色與條形的顏色相匹配?
注意:如果“fill”未設定為“as.factor”,我會得到以下資訊:錯誤:提供給離散比例的連續值
uj5u.com熱心網友回復:
問題是您的列p_value_dif不包含任何值"Significant"或"Insignificant". 只有這些值會被填充為“黑色”或“橙色”。所有其他值都將使用na.value比例的默認值填充。相反,您可以將列映射p-value.category到填充并設定填充顏色和標簽,如下所示:
library(ggplot2)
ggplot(df, aes(x=gene,
y=p_value_dif ,
label=p_value_dif ))
geom_bar(stat='identity',
aes(fill= `p-value.category`),
width=0.9)
scale_fill_manual("legend",
values = c("sig" = "black", "non-sig" = "orange"),
labels = c("sig" = "Significant", "non-sig" = "Insignificant"))
coord_flip()

資料
df <- data.frame(
stringsAsFactors = FALSE,
check.names = FALSE,
gene = c("a", "c", "d", "e"),
p_value = c(0.06, 0.07, 0.008, 0.009),
p_value_dif = c("0.01", "0.02", "- 0.03", "- 0.04"),
`p-value.category` = c("non-sig", "non-sig", "sig", "sig")
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/365227.html
