python中的线图

时间:2018-03-26 18:18:45

标签: python python-3.x matplotlib jupyter-notebook

我正在使用的一些细节:

    Jupyter Notebook (v. 5.4)
    matplotlib (v. 2.1.2)
    Python (v. 3.6.4)

具体问题:我试图通过唯一ID(来自ID列)在Nominal_Timepoint(x轴)上创建PKa数据(y轴)的多线图。在一个完美的世界中,图表上会有两行(ID列中每个唯一ID一行),x轴将按Nominal_Timepoint排序。

以下是我目前在代码方面所拥有的内容:

import matplotlib.pyplot as plt
import pandas as pd 
%matplotlib inline

pkc = pd.read_excel("NAME OF FILE.xlsx", usecols = [1,2,3,4,7,8])
pkc['PKa Data']=pkc['PKa Data'].apply(pd.to_numeric, errors='coerce')
pkc['PKb Data']=pkc['PKb Data'].apply(pd.to_numeric, errors='coerce')
pkc

ID       Cohort  Day             Nominal_Timepoint   PKa_Data PKb_Data
101002   1       Cycle 1 Day 1   Pre-Dose            NaN      NaN
101002   1       Cycle 1 Day 1   30-Minutes          9.190    NaN
101002   1       Cycle 1 Day 1   1 hr                15.200   NaN
101002   1       Cycle 2 Day 1   Pre-Dose            52.400   0.666
101002   1       Cycle 2 Day 1   30-Minutes          30.200   0.582
101002   1       Cycle 2 Day 1   1 hr                76.900   0.869
202001   2       Cycle 1 Day 1   Pre-Dose            NaN      NaN
202001   2       Cycle 1 Day 1   30-Minutes          0.941    NaN
202001   2       Cycle 1 Day 1   1 hr                8.340    NaN
202001   2       Cycle 2 Day 1   Pre-Dose            112.000  1.750
202001   2       Cycle 2 Day 1   30-Minutes          103.000  1.730
202001   2       Cycle 2 Day 1   1 hr                97.400   1.570

plt.plot(pkc['Nominal_Timepoint'], pkc['PKa_Data'])

目前,图表如下所示:

Graph with unordered x axis

您可以在图片中看到x轴未正确排序,并且图表上应该只有两行,因为ID列中只有两个唯一ID。我已经探索了一堆在线matplotlib教程,但我似乎无法让它发挥作用。任何其他帮助将不胜感激。我之前有过这个问题,但它已被搁置(虽然我不确定原因,但我确实修改了这个问题,试着更清楚一点)。在信用到期的情况下,上面的plt.plot代码是由Goyo提供的,至少让我得到了上面附带的图片。

1 个答案:

答案 0 :(得分:0)

你需要整理你的时间点。目前,您可以看到发生了什么:plot 尝试在“1小时”,“30分钟”和“预剂量”的给定范围内插入数据点,没有任何参考周期或日。

使用timedata类型构造另一个列,该列提供plot可以使用的数字同源类型。确保第一个值是针对第1周期,给药前;然后循环1,30分钟;等等。您需要按顺序使用相同值类型的六个不同值。将其用作x轴值。

您当前的代码表示小时,分钟和文字,因此plot在阅读您的想法时遇到了问题。

这足以让你感动吗?