python - 使大型数据集的散点图成为可能 - Python
问题描述
我有一个已存储为 2D 列表的数据集,如下所示:
[[72,72,72,83,83,83,63,63]
[72,72,72,72,72,83,83,63,63,63,63,63]
[72,72,72,72,72,83,63,63,63,63,63,78,78]
[72,72,72,83,83,83,83,63,63,78,78,72,72,72]
[72,72,72,78,78,83,83,83,63,63]]
每个子列表都有不同的长度,并且在随机位置包含重复值(即上面示例数据集中的 72、83、63、78)。我想看看是否有一种模式,例如,72 可能在开始时显示,或者 83 总是出现在中间,等等。我一直试图在散点图中绘制数据,这些唯一值作为不同的颜色(像这样的东西)。
fig, ax = plt.subplots()
##get color dictionary
base_color=['b','c','k','g','m','w','r','y']
unique_input = set(i for j in new_input_number for i in j)
label_dict={}
for key,value in zip(unique_input,base_color[0:len(unique_input)]):
label_dict[key]=value
legend_dict={}
for value in unique_input:
legend_dict[value]=value
rows=len(new_input_number)
seen=set()
for i in range(1,rows):
x=range(0,len(new_input_number[i]))
y = i * np.ones(len(new_input_number[i]))
label=tuple(new_input_number[i])
for x,y,label in zip(x,y,label):
ax.scatter(x, y, s=0.1, c=label_dict.get(label), label=legend_dict.get(label) if label not in seen else None)
seen.add(label)
plt.legend()
plt.show()
这段代码的问题是它只适用于小数据集,即 5x100,但不适用于大数据集,1000*200。
我非常感谢有关如何使其接受大型数据集或任何有关可视化的建议的帮助。
谢谢,
解决方案
推荐阅读
- memory-leaks - RxJS:在 takeUntil 之后使用重复创建订阅泄漏
- angular - 如何使用 karma jasmine 对依赖于另一个函数的函数进行单元测试
- php - Cookie 不会设置,没有结果
- python - 在 python 中读取德语 csv 文件的问题
- opencv - 来自应用程序的 OpenCv + Gstreamer,初始延迟 30 秒
- amazon-web-services - 确保在 AWS S3 同步期间数据不会丢失
- php - 如何通过 agi php 写入文件?
- php - 明智地显示或隐藏内容用户角色
- python - 获取数组中最大元素的数组索引号的最佳方法
- flutter - 方法在 StreamBuilder 中被调用两次,其中包含 Flutter 中的自定义对话框