数据可视化
#导入数据集
import pandas as pd
data = pd.read_csv('C:/Users/dell/Desktop/week5/example/foo.csv')
mm = data.sum()
mm = data.sum()
- sum 为求和运算,data是指上面定义
DataFrame.sum(axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
axis : {index (0), columns (1)}
1、axis=0时,对应的是第一个维度元素的相加,
[[0,1,2,3],[4,5,6,7]]和[[1,2,3,4],[5,6,7,8]]对应元素相加[[0+4,1+2,2+3,3+4],[4+5,5+6,7+7,7+8]]=[[1,3,5,7],[9,11,14,16]]
2、axis=1时, 对应的是第二个维度元素相加,这时候保留第一个维度的结构(第一个维度元素的个数),
第一个维度元素的个数为2。分别是
[[0,1,2,3],[4,5,6,7]]和[[1,2,3,4],[5,6,7,8]]
结构不变,继续向下拆分,可得
(1)[0,1,2,3]和[4,5,6,7], 对应元素相加, 合并到一个数组中, [4,6,8,10]
(2)[1,2,3,4]和[5,6,7,8], 对应元素相加, 合并到一个数组中, ,6,8,10,12]
3、当axis=2时, 因为元素一共是三维,这就到了最后一个维度,将最小单位的数组元素相加即可。
[0+1+2+3,4+5+6+7],[[1+2+3+4],[5+6+7+8]]=[[6,22],[10,26]]
#绘制图形
import numpy as np
import matplotlib.pyplot as plt
#中文字体显示
plt.rc('font', family='SimHei', size=13)
N = 3
#3个用户 0 1 2
ind = np.arange(N) # the x locations for the groups
np.arange(start, stop, step, dtype=None)
- arange函数用于创建等差数组
1.start:可忽略不写,默认从0开始;起始值
2.stop:结束值;生成的元素不包括结束值
3.step:可忽略不写,默认步长为1;
4. dtype:默认为None,设置显示元素的数据类型
#设置宽度
width =0.5
x = [u'用户A', u'用户B', u'用户C']
#绘图
plt.figure(1)
plt.bar(ind, mm, width, color='r')
plt.xlabel(u"用户名")
plt.ylabel(u"总耗电量")
plt.title(u'电力窃漏电用户自动识别--总耗电量')
plt.show()
1.width是设置的宽度,表示在条形图中的宽度
2.plt.bar 表示画条形图
bar(x, height, width=0.8, bottom=None, , align=‘center’, data=None, kwargs*)
x:x坐标
height :条形的高度
width:宽度
botton:条形的起始位置
align:条形的中心位置(“center”,“lege"边缘)
观察plt.bar(ind, mm, width, color=‘r’)
#%%
import matplotlib.pyplot as plt
fracs = [45, 30, 25] #每一块占得比例,总和为100 #离开整体的距离,看效果
labels = 'A', 'B', 'C' #对应每一块的标志
plt.figure(2)
plt.pie(fracs, labels=labels,autopct='%1.1f%%', shadow=True, startangle=60, colors = ("g", "r", "y"))
plt.show()
- def pie(x, explode=None, labels=None, colors=None, autopct=None,
pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None,
radius=None, counterclock=True, wedgeprops=None, textprops=None,
center=(0, 0), frame=False, rotatelabels=False, hold=None, data=None)
x : (每一块)的比例,如果sum(x) > 1会使用sum(x)归一化;
labels :(每一块)饼图外侧显示的说明文字;
autopct :控制饼图内百分比设置,可以使用format字符串或者format function ‘%1.1f’ 指小数点前后位数(没有用空格补齐);
startangle :起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起;
shadow :在饼图下面画一个阴影。默认值:False,即不画阴影;
#导入数据集
import pandas as pd
data = pd.read_csv('foo.csv')
mm = data.sum()
#绘制图形
import numpy as np
import matplotlib.pyplot as plt
#中文字体显示
plt.rc('font', family='SimHei', size=13)
N = 3
#3个用户 0 1 2
ind = np.arange(N) # the x locations for the groups
#设置宽度
width = 0.35
x = [u'用户A', u'用户B', u'用户C']
#绘图
plt.figure(1)
plt.bar(ind, mm, width, color='r')
plt.xlabel(u"用户名")
plt.ylabel(u"总耗电量")
plt.title(u'电力窃漏电用户自动识别--总耗电量')
plt.show()
#%%
import matplotlib.pyplot as plt
fracs = [45, 30, 25] #每一块占得比例,总和为100 #离开整体的距离,看效果
labels = 'A', 'B', 'C' #对应每一块的标志
plt.figure(2)
plt.pie(fracs, labels=labels,autopct='%1.1f%%', shadow=True, startangle=60, colors = ("g", "r", "y"))
plt.show()