Я пытаюсь отобразить 2 основных набора данных, а именно: «Тип2» (красные квадраты) и «Тип1» (синие круги) в легенде. Тем не менее, поскольку мой сюжет включает в себя подгруппы «Type1» и «Type2» (A, B являются подгруппами каждого), в легенде появляются 4 элемента. Посмотрите, как выглядят мои графики:
Проблема в легенде (), как правило, отображает 4 элемента: красный квадрат, красный квадрат, синий круг, синий крикл, хотя мне нужны только два из них, т.е. красныйквадрат для обозначения Type2 и синий круг для Type1.
Type2 Mean2 SD2
A 4.1 1.9
A 5.7 0.9
A 7.5 1.2
B 6.9 0.7
B 4.9 0.4
B 8.5 1
Type1 Mean1 SD1
A 8.1 1
A 7.7 0.9
A 8.5 1.1
B 5.9 0.4
B 7.9 0.7
B 9.5 1.2
Figure1 = plt.figure('Scatter Plot', figsize=(6,6), dpi=300)
Subplot1 = Figure1.add_subplot(1,1,1)
markers = ['s','s']
colors = ['r', 'r']
grouped = DataFrame.groupby('Type2')
for i,((g,d),m,c) in enumerate(zip(grouped,markers,colors)):
x = np.random.normal(loc=i,scale=0.2,size=(len(d['Mean2'],)))
Subplot1.errorbar(x, y= Mean2 , yerr= SD2 ,
fmt=m,
markersize=5, color=c,
capsize=3, markeredgewidth=0.5
)
XPos = list(range(len(grouped)))
Subplot1.set_xticks(XPos)
Subplot1.set_xticklabels([a for a in grouped.groups])
Subplot1.set_xlim(-0.5,1.5)
###############################################
###############################################
markers = ['o','o']
colors = ['b', 'b']
grouped = DataFrame.groupby('Type1')
for i,((g,d),m,c) in enumerate(zip(grouped,markers,colors)):
x = np.random.normal(loc=i,scale=0.2,size=(len(d['Mean1'],)))
Subplot1.errorbar(x, y= Mean1, yerr= SD1,
fmt=m,
markersize=5, color=c,
capsize=3, markeredgewidth=0.5
)
###############################################
###############################################
Subplot1.legend(['Type2','not needed!', 'Type1','not needed!'])
Любые комментарии будут высоко оценены. Большое спасибо!
