【发布时间】:2015-06-24 13:14:47
【问题描述】:
我是 pandas 的新手,很难以方便的方式使用它的功能。
我有一个大型数据框,其中包含我想比较的两个不同测试的实验数据。理想情况下,数据显示在图中。
## what I have:
import pandas as pd
ids = [
'Bob','Bob',
'John', 'John',
'Mary', 'Mary',
]
var = [
'a', 'b',
'a', 'b',
'a', 'b',
]
data = [
10,11,
15,14,
10,15
]
dataset = zip(ids, var, data)
print dataset
columns = ['ids', 'var', 'data']
df = pd.DataFrame(data = dataset, columns=columns)
print df
## what I want:
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
fig = plt.figure()
ax1 = fig.add_subplot(111)
for i,ii in enumerate(ids):
if var[i] == 'a':
ax1.plot(i/2, data[i], 'rs', label='var a')
else:
ax1.plot((i-1)/2, data[i], 'bo', label='var b')
majorLocator = MultipleLocator(1)
ax1.xaxis.set_major_locator(majorLocator)
ax1.grid()
ax1.margins(0.05)
ax1.set_xlabel('ids')
ax1.set_ylabel('data')
ax1.legend(loc='best', numpoints=1)
fig.show()
在没有很多嵌套 for 循环的情况下如何正确执行此操作?如果我可以将 id 用作 xlabels,那将是一个加分项......
提前非常感谢, 丹尼尔
【问题讨论】:
-
我对你想要情节显示的内容感到困惑。
标签: python pandas matplotlib data-analysis