我有以下格式的pandas数据框:
groups value
1 0
0 0
0 0
0 0.1
1 0.4
1 0.5
0 0.5
1 0.8
0 0.8
1 0.9
1 1
1 1
1 1
1 1
0 1
0 1
我想要一个在y轴上具有值的排序线图,如下所示:
无论如何:我也想在同一个情节中为每个小组设一个类似的线。 (或者只是组的两行,但它们的大小不同)
有人可以帮帮我吗?我觉得那可能吗?
我使用python 3.x和pandas 0.16.2。我更喜欢使用matplotlib或seaborn。
答案 0 :(得分:3)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.read_csv('/home/Jian/Downloads/real_data.csv')
# processing
# ==========================
fig, ax = plt.subplots()
ax.set_ylim([0, 1.2])
count = 0
def func(group):
group.sort('value', inplace=True)
x = np.linspace(0, 1, len(group))
global ax, count
if count > 0:
ax.plot(x, group.value, label=group.groups.values[0])
count += 1
return group
df.groupby('groups').apply(func)
ax.legend(loc='best')