我正在使用的一些细节:
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'])
目前,图表如下所示:
。
您可以在图片中看到x轴未正确排序,并且图表上应该只有两行,因为ID列中只有两个唯一ID。我已经探索了一堆在线matplotlib教程,但我似乎无法让它发挥作用。任何其他帮助将不胜感激。我之前有过这个问题,但它已被搁置(虽然我不确定原因,但我确实修改了这个问题,试着更清楚一点)。在信用到期的情况下,上面的plt.plot代码是由Goyo提供的,至少让我得到了上面附带的图片。
答案 0 :(得分:0)
你需要整理你的时间点。目前,您可以看到发生了什么:plot
尝试在“1小时”,“30分钟”和“预剂量”的给定范围内插入数据点,没有任何参考周期或日。
使用timedata类型构造另一个列,该列提供plot
可以使用的数字同源类型。确保第一个值是针对第1周期,给药前;然后循环1,30分钟;等等。您需要按顺序使用相同值类型的六个不同值。将其用作x轴值。
您当前的代码表示小时,分钟和文字,因此plot
在阅读您的想法时遇到了问题。
这足以让你感动吗?