实验需求:
OK,我的原需求是这样的:对于一个表情数据库,它的arousal、valence的标注都为-10到10之间的离散整数。我需要统计其标注arousal和valence的分布,将它们画成3维图像。
其中X轴代表valence的标注值从-10到10,Y轴代表arousal的标注值从-10到10,Z轴呢,代表每一个对应arousal、valence值的图像个数。
这意味着我需要画的是3维立体柱状图,而不是3维曲面图,因为标注值是离散的整数。
PS:为了考虑怎么设置Z轴真是头大了一整个下午,我不想一个个去分类计数每一个a&v交叉点中的个数,这个实在是太笨了。。。 于是和小伙伴商讨了一个下午,最终决定还是采用相对较简单且实用的方法。
第一步:读取数据,取出点组合在一起
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pandas as pd
import cv2, os, json
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
filename = r"D:\zhang\zhangT/sd1000.csv"
data = pd.read_csv(filename)
x = data['valence']
y = data['arousal']
points=[]
for i in range(len(x)):
n = x[i]
m = y[i]
points.append((n, m))
# print(points)