在R中绘制图形
我有两个列形式的数据表,即成对的疾病及其度量。下面是第一个(样本数据)表1在R中绘制图形,r,graph,plot,ggplot2,R,Graph,Plot,Ggplot2,我有两个列形式的数据表,即成对的疾病及其度量。下面是第一个(样本数据)表1 **d1** **d2** **Value** Disease1 Disease2 3.5 Disease3 Disease4 5 Disease5 Disease6 1.1 Disease1 Disease3 2.4 Disease6 Disease2 6.7 真实数据集1(疾病表1)如下所示: Bladder cancer X-linked ic
**d1** **d2** **Value**
Disease1 Disease2 3.5
Disease3 Disease4 5
Disease5 Disease6 1.1
Disease1 Disease3 2.4
Disease6 Disease2 6.7
真实数据集1(疾病表1)如下所示:
Bladder cancer X-linked ichthyosis (XLI) 3.5
Leukocyte adhesion deficiency (LAD) Aldosterone synthase Deficiency 1.8
Leukocyte adhesion deficiency (LAD) Brain Cancer 1.5
Tangier disease Pancreatic cancer 0.66
我想在绘制两个表的疾病对及其值时显示这两个数据表之间的差异。
我使用了plot函数和lines函数,但是它太简单了,并且不能区分太多。另外,我希望在绘制时能够得到疾病对的名称
plot(density(disease_table1$value))
lines(density(disease_table1$value))
谢谢一些示例代码:
# creating dataframes (i made up a second one)
df1 <- read.table(text = "d1 d2 x
Disease1 Disease2 3.5
Disease3 Disease4 5
Disease5 Disease6 1.1
Disease1 Disease3 2.4
Disease6 Disease2 6.7", header = TRUE, strip.white = TRUE)
df2 <- read.table(text = "d1 d2 y
Disease1 Disease2 4.5
Disease3 Disease4 2
Disease5 Disease6 3.1
Disease1 Disease3 1.4
Disease6 Disease2 5.7", header = TRUE, strip.white = TRUE)
# needed libraries
library(reshape2)
library(ggplot2)
# merging dataframes & creating unique identifier variable
data <- merge(df1, df2, by = c("d1","d2"))
data$diseasepair <- paste0(data$d1,"-",data$d2)
data.long <- melt(data, id="diseasepair", measure=c("x","y"), variable="group")
# make the plot
ggplot(data.long) +
geom_bar(aes(x = diseasepair, y = value, fill = group),
stat="identity", position = "dodge", width = 0.7) +
scale_fill_manual("Group\n", values = c("red","blue"),
labels = c(" X", " Y")) +
labs(x="\nDisease pair",y="Value\n") +
theme_bw()
#创建数据帧(我制作了第二个)
df1你能给我们提供一个数据集吗?我已经添加了真实的数据集,以代码为例。对于400000多个疾病对,你可能需要一个聚类方法。你能发布一个链接到你的数据,或者更具代表性的子集,比如说几千条记录吗?我有40万对这样的记录,所以我认为这是行不通的。但对于较小的数据集来说,这会很好。我相信,曲线或热图可以工作?对于40万对记录,热图也不行。是否要比较每对的值?或者仅仅针对特定的对?基本上,我想使用一个数据集中的值与另一个数据集中的值来显示疾病对的丰富程度。因此,我想比较每个对的值。为组或特定组合创建数据集子集可能是更好的解决方案。一个图中的所有这些400k对不会产生任何值的图(至少我是这么认为的)。首先确定要查找的内容,然后创建子集并创建一些绘图。