可以同时显示四种不同类型数据的可视化

2024-09-27 19:32:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我想可视化我的数据,如下所示:

  1. 我有5种不同的算法(alg1、alg2、alg3、alg4和alg5)

  2. 我有三组用户(g1、g2和g3)

  3. 对于每组,根据两个指标m1和m2(例如每组的精度和利润)评估算法。

我想将所有这些可视化到一个图中,该图可以显示这些算法在所有三个用户组上的两个指标方面的表现

我在考虑散点图,但不确定如何将所有这些都合并到一个散点图中

度量m1的结果如下:每个值有三个元素,对应于三个不同的用户组

{'alg1': [662.0003391054959, 175.32345651614452, 72.03508238727193],
 'alg2': [923.6524005590929, 385.2151039219693, 190.71692280990948],
 'alg3': [1404.387917216172, 446.2766994367938, 213.12994410684388],
 'alg4': [-28.01225225765556, -73.09081443515035, -85.32203386999164],
 'alg5': [1117.9970322350164, 424.7898159256133, 208.7032559089046]}

对于公制m2:

{'alg1': [0.03111111111111112, 0.04362962962962987, 0.06071428571428592],
 'alg2': [0.0991111111111115, 0.10851851851851772, 0.14776785714285706],
 'alg3': [0.006074074074074077,
  0.02911111111111126,
  0.061904761904762164],
 'alg4': [0.0017777777777777776, 0.00362962962962963, 0.0038690476190476205],
 'alg5': [0.06148148148148173, 0.08140740740740716, 0.12187499999999994]}

Tags: 数据用户算法可视化指标g1用户组g2
1条回答
网友
1楼 · 发布于 2024-09-27 19:32:38

您可以按颜色识别算法,按标记类型识别用户组。轴中的M1和M2度量

你觉得怎么样

enter image description here

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

m1d = {'alg1_m1': [662.0003391054959, 175.32345651614452, 72.03508238727193],
 'alg2_m1': [923.6524005590929, 385.2151039219693, 190.71692280990948],
 'alg3_m1': [1404.387917216172, 446.2766994367938, 213.12994410684388],
 'alg4_m1': [-28.01225225765556, -73.09081443515035, -85.32203386999164],
 'alg5_m1': [1117.9970322350164, 424.7898159256133, 208.7032559089046]}

m2d = {'alg1_m2': [0.03111111111111112, 0.04362962962962987, 0.06071428571428592],
 'alg2_m2': [0.0991111111111115, 0.10851851851851772, 0.14776785714285706],
 'alg3_m2': [0.006074074074074077,
  0.02911111111111126,
  0.061904761904762164],
 'alg4_m2': [0.0017777777777777776, 0.00362962962962963, 0.0038690476190476205],
 'alg5_m2': [0.06148148148148173, 0.08140740740740716, 0.12187499999999994]}

m1 = pd.DataFrame.from_dict(m1d)
m2 = pd.DataFrame.from_dict(m2d)

f, ax = plt.subplots()
a = ax.scatter(m1['alg1_m1'],m2['alg1_m2'],color=['r','g','b'], marker='.')
b = ax.scatter(m1['alg2_m1'],m2['alg2_m2'],color=['r','g','b'], marker='v')
c = ax.scatter(m1['alg3_m1'],m2['alg3_m2'],color=['r','g','b'], marker='<')
d = ax.scatter(m1['alg4_m1'],m2['alg4_m2'],color=['r','g','b'], marker='>')
e = ax.scatter(m1['alg5_m1'],m2['alg5_m2'],color=['r','g','b'], marker='^')
ax.set_xlabel('M1')
ax.set_ylabel('M2')

red = mpatches.Patch(color='red', label='Group 1')
blue = mpatches.Patch(color='blue', label='Group 2')
green = mpatches.Patch(color='green', label='Group 3')

legend2 = plt.legend(handles=[red, blue, green], loc=1)
plt.legend((a,b,c,d,e),['alg1','alg2','alg3','alg4','alg5'], loc=7)
plt.gca().add_artist(legend2)

leg = ax.get_legend()
for i in range(0,5,1):
    leg.legendHandles[i].set_color('k')
plt.show()

相关问题 更多 >

    热门问题