如何用多个数据变量在R(或python)中绘制XY图

2024-04-28 10:27:32 发布

您现在位置:Python中文网/ 问答频道 /正文

抱歉,这个问题太幼稚了,但我想在不使用excel的情况下生成X-Y线图。这可以完全用于您,但我不知道如何在R(或python)中使用它。我设法在excel中使用filter,但我也想学习如何在R(或python)中使用filter。你知道吗

请允许我解释一下我的数据集。我有4个病人在不同的温度保存后在不同的时间点采集血清或血浆样本。因此,在第一栏我有样品的信息,第二栏有X物质的测量值。你知道吗

例如,P1-p-0-4C显示患者编号(P1,P2,P3,P4)-样本类型(血浆为p,血清为S)-时间点(O,2,4,24,48)温度(RT室温,4C4摄氏度)。你知道吗

我想把所有的数据都画在同一个图上,看看血清/血浆在不同条件下保存后,X物质是否有变化。我想生成一个这样的图X concentration in patients after different treatment conditions 我的数据集如下:

Patient-SampleType-TimePoint-Temperature    X
P1-P-0-4C   296069.0034
P1-P-2-4C   235396.4235
P1-P-24-4C  312007.7416
P1-P-4-4C   342862.3662
P1-P-48-4C  306989.3416
P1-S-0-4C   344062.9737
P1-S-2-4C   288759.3582
P1-S-2-RT   251556.5559
P1-S-2-RT   347681.0886
P1-S-24-4C  328497.3854
P1-S-24-RT  318663.7857
P1-S-4-4C   377022.115
P1-S-4-RT   300030.9723
P1-S-48-4C  322916.5035
P2-P-0-4C   302233.2476
P2-P-2-4C   212031.9071
P2-P-2-RT   280248.5514
P2-P-2-RT   200163.7082
P2-P-24-4C  304414.1135
P2-P-24-RT  288264.7509
P2-P-4-4C   266773.3594
P2-P-4-RT   267321.0591
P2-P-4-RT   315698.9957
P2-S-0-4C   324280.0475
P2-S-2-4C   298859.3902
P2-S-24-4C  317494.2878
P2-S-4-4C   363388.7028
P2-S-48-4C  334685.2213
P3-P-0-4C   309757.5704
P3-P-0-4C   365228.5421
P3-P-2-4C   345045.4865
P3-P-2-RT   315440.0989
P3-P-24-4C  228526.6513
P3-P-4-4C   374452.1789
P3-P-4-RT   334286.7564
P3-P-48-4C  329091.5618
P3-P-48-RT  294519.8679
P3-S-2-4C   299500.602
P3-S-2-RT   345366.8082
P3-S-24-4C  404017.0886
P3-S-24-RT  354502.5535
P3-S-24-RT  309955.0379
P3-S-4-4C   388544.543
P3-S-4-RT   301911.6627
P3-S-48-4C  402267.1695
P3-S-48-RT  296266.8484
P4-P-0-4C   118724.6213
P4-P-0-RT   103892.5857
P4-P-2-4C   119094.8588
P4-P-2-RT   105176.9063
P4-P-24-4C  126634.8397
P4-P-24-RT  115748.3037
P4-P-4-4C   133313.0945
P4-P-4-RT   120920.6753
P4-P-48-4C  110347.2253
P4-P-48-RT  210916.0767
P4-S-0-4C   291704.4734
P4-S-0-RT   305554.4509
P4-S-2-4C   256265.2956
P4-S-2-RT   250442.9917
P4-S-24-4C  271662.4038
P4-S-24-RT  255056.0136
P4-S-4-4C   245853.6192
P4-S-4-RT   197982.1819
P4-S-48-4C  269603.8002
P4-S-48-RT  171348.1218

但是,如果不对数据进行子集和拆分,我就无法准确地理解该怎么做?有没有办法不把列拆分成几行呢?你知道吗

非常感谢你的帮助。你知道吗

B类


Tags: 数据时间情况filter温度excel样本p2
1条回答
网友
1楼 · 发布于 2024-04-28 10:27:32

试试这个。在你用实际数据更新之前我就开始了我用随机数据。你知道吗

## Use the very useful ggplot2 library
library(ggplot2)

## Get your data into a data frame
## This uses random data
Patient.Number <- rep(c("P1", "P2", "P3", "P4"), length.out=80)
Sample.Type <- c(rep("P", times=40), rep("S", times=40))
Temperature <- rep(c(rep("4C", times=20), rep("RT", times=20)), times=2)
Time.Point <- rep(c(rep(0, times=4),
                    rep(2, times=4),
                    rep(4, times=4),
                    rep(24, times=4),
                    rep(48, times=4)), length.out=80)
X <- runif(80, 0, 100)
line.code = paste(Patient.Number, Sample.Type, Temperature, sep="-")
dat <- data.frame(Patient.Number, X, Sample.Type, Time.Point, Temperature, line.code)

## Plot the graph. Your data will look nicer than this!    
ggplot(dat, aes(Time.Point, X, color=line.code)) +
    geom_line() +
    ylab("X (ng/ml)") +
    ylab("Time (Hours)")

Here is what it looks like

通过从编码的“P1-p-24-4C”等中提取时间,您可以轻松地将数据调整为与我相同的格式

相关问题 更多 >