绘图 Pandas:分组折线图
Plotting Pandas: Grouped line chart
我有一个 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。
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')
我有一个 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。
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')