数据挖掘 之 数据可视化与数据分析
相关库:numpy、panda、matplotlib
- 一些基础方法
1.1绘制函数图
plt.plot(x, y, format_string, **kwargs)
x:x轴数据,列表或数组,可选
y:y轴数据,列表或数组
format_string:控制曲线的格式字符串,可选,由颜色字符、风格字符和标记字符组成。
颜色字符 |
说明 |
颜色字符 |
说明 |
‘b’ |
蓝色 |
‘m’ |
洋红色 |
‘g’ |
绿色 |
‘y’ |
黄色 |
‘r’ |
红色 |
‘k’ |
黑色 |
‘c’ |
青绿色 cyan |
‘w’ |
白色 |
‘#008000’ |
RGB某颜色 |
‘0.8’ |
灰度值字符串 |
风格字符 |
说明 |
‘-‘ |
实线 |
‘–’ |
破折线 |
‘-.’ |
点划线 |
‘:’ |
虚线 |
’ ’ ’ ‘ |
无线条 |
标记字符 |
说明 |
标记字符 |
说明 |
‘.’ |
点标记 |
‘1’ |
下花三角标记 |
‘,’ |
像素标记(极小点) |
‘2’ |
上花三角标记 |
‘o’ |
实心圈标记 |
‘3’ |
左花三角标记 |
‘v’ |
倒三角标记 |
‘4’ |
右花三角标记 |
‘^’ |
上三角标记 |
’s’ |
实心方形标记 |
‘>’ |
右三角标记 |
‘p’ |
实心五角标记 |
‘<’ |
左三角标记 |
‘*’ |
星形标记 |
‘h’ |
竖六边形标记 |
‘d’ |
瘦菱形标记 |
‘H’ |
横六边形标记 |
‘|’ |
垂直线标记 |
‘+’ |
十字标记 |
‘D’ |
菱形标记 |
‘x’ |
x标记 |
**kwargs:第二组或更多,(x,y,format_string)
常用的参数:
color:控制颜色,color=’green’
linestyle:线条风格,linestyle=’dashed’
marker:标记风格,marker = ‘o’
markerfacecolor:标记颜色,markerfacecolor = ‘blue’
markersize:标记尺寸,markersize = ‘20’
import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.figure(figsize=(4,2))x = np.linspace(0, 2*np.pi, 50)
print(x)#均分计算指令
y = np.sin(x)
plt.plot(x,y,'bp--')
plt.show()
1.2绘制饼状图
import matplotlib.pyplot as plt
plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1,startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=0, 0, frame=False, rotatelabels=False, *, normalize=None, data=None)
x: 即每个扇形的占比的序列或数组
explode:如果不是None,则是一个len(x)长度的数组,指定每一块的突出程度;突出显示,设置每一块分割出来的间隙大小
labels:为每个扇形提供标签的字符串序列
colors:为每个扇形提供颜色的字符串序列
autopct:如果它是一个格式字符串,标签将是fmt % pct。如果它是一个函数,它将被调用。
shadow:阴影
startangle:从x轴逆时针旋转,饼的旋转角度
pctdistance, default: 0.6每个饼片的中心与由autopct生成的文本的开头之间距离与半径的比率,大于1的话会显示在圆外
labeldistance, default 1.1饼状图标签绘制时的径向距离(我认为这个也与8类似是个比率)。如果设置为None,则不绘制标签,而是存储在图例()中使用。
import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.sans-serif'] = ['SimHei']
task = ["高数上下复习(15h)","英语每日指标(14h)","最优化(5h)","数据挖掘实验(15h)","考研择校(4h)","数学建模规划(5h)","jupyter学习(5h)"]
time = np.array([15,14,5,15,4,5,5])
totaltime = sum(time)plt.pie(x=time,labels=task,autopct='%1.1f%%', #*饼图上标注百分比shadow=False, #*是否有阴影startangle=0 #*逆时针旋转角度)
# plt.axis('equal') # 显示为圆(避免比例压缩为椭圆)
plt.show()
1.3绘制直方图(分箱)
matplotlib.pyplot.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype=’bar’, align=’mid’, orientation=’vertical’, rwidth=None, log=False, color=None, label=None, stacked=False, \*, data=None, \*\*kwargs)
参数:此方法接受以下描述的参数:
x:此参数是数据序列。
bins:此参数是可选参数,它包含整数,序列或字符串。
range:此参数是可选参数,它是箱子的上下限。
density:此参数是可选参数,它包含布尔值。
weights:此参数是可选参数,并且是一个权重数组,与x的形状相同。
bottom:此参数是每个容器底部基线的位置。
histtype:此参数是可选参数,用于绘制直方图的类型。 {‘bar’,‘barstacked’,‘step’,‘stepfilled’}
align:此参数是可选参数,它控制如何绘制直方图。 {‘left’,‘mid’,‘right’}
rwidth:此参数是可选参数,它是条形图的相对宽度,是箱宽度的一部分
log:此参数是可选参数,用于将直方图轴设置为对数刻度
color:此参数是一个可选参数,它是一个颜色规格或一系列颜色规格,每个数据集一个。
label:此参数是可选参数,它是一个字符串或匹配多个数据集的字符串序列。
normed:此参数是可选参数,包含布尔值,而是使用density关键字参数。
import matplotlib.pyplot as plt
import numpy as np
x = np.random.randn(1000)
plt.hist(x,10)
plt.show()
2d直方图:4.6Python数据处理篇之Matplotlib系列(六)---plt.hist()与plt.hist2d()直方图 - 简书 (jianshu.com)
含曲线拟合:(138条消息) [391]matplotlib.pyplot中的hist函数_周小董的博客-CSDN博客_ax.hist
含堆叠式:(138条消息) matplotlib.pyplot.hist参数详解_TravelingHat的博客-CSDN博客_matplotlib.pyplot.hist
1.4绘制箱型图(胡须图)
df.plot.box(title="title") # 箱型图
import numpy as np
import pandas as pd
import matplotlib.pyplot as pltdata = [1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100,4000,5000]df = pd.DataFrame(data)
df.plot.box(title="title") # 箱型图
plt.grid(linestyle="--", alpha=0.3) # 显示网格线
plt.show()
绘制多个箱型图及简便用法:Python pandas.DataFrame.plot.box用法及代码示例 - 纯净天空 (vimsky.com)
1.5贡献度分析(帕累托分析)
给出产品的销售额,按照大到小排序,绘制积分变换曲线(由0->1递增,且斜率逐渐变小)
p.plot(color='r', secondary_y=True, style='-o', linewidth=2)
# secondary_y = True:设置第二纵坐标plt.annotate(format(p[6], '.4%'), # 文字内容xy=(6, p[6]), # 点标注的位置xytext=(6*0.9, p[6]*0.9), # 文字标记的位置arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))
import pandas as pd
import matplotlib.pyplot as plt
import xlrd# xlrd是读excel,xlwt是写excel的库
dish_profit = r'E:\data\catering_dish_profit.xls'
# 读取数据(设置主键为菜品名)、显示的时候自动设置横轴中文标记
data = pd.read_excel(dish_profit, index_col='菜品名')
print(data)data = data['盈利'].copy() # 复制一份
print(data)
data= data.sort_values(ascending=False)
data.plot(kind='bar') # 绘制柱状图p = 1.0*data.cumsum()/data.sum() # data.cumsum():求积分 Σ0,Σ1,Σ2,Σ3……
p.plot(color='r', secondary_y=True, style='-o', linewidth=2)
# secondary_y = True:设置第二纵坐标# 标记特殊点!详细教程:https://blog.csdn.net/TeFuirnever/article/details/88946088
plt.annotate(format(p[6], '.4%'), # 文字内容xy=(6, p[6]), # 点标注的位置xytext=(6*0.9, p[6]*0.9), # 文字标记的位置arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")) # arrowprops #箭头参数,参数类型为字典dictplt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.ylabel('盈利(元)')
plt.show()
(139条消息) plt.annotate()函数解析(最清晰的解释)_我是管小亮的博客-CSDN博客_plt.annotate(s=r's\hat{y}=29.40+1.55*$'+'广告费支出', x
1.6周期性分析
import pandas as pd
import matplotlib.pyplot as plt
df_normal = pd.read_csv(r"E:\data\user.csv")
print(df_normal)plt.figure(figsize=(8,4))
plt.plot(df_normal["Date"],df_normal["Eletricity"])
plt.xlabel("日期")
x_major_locator = plt.MultipleLocator(7)
ax = plt.gca()ax.xaxis.set_major_locator(x_major_locator)
plt.ylabel("每日电量")
plt.title("正常用户电量趋势")
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.show()df_steal = pd.read_csv(r'E:\data\Steal user.csv')
plt.figure(figsize=(10,9))
plt.plot(df_steal["Date"],df_steal["Eletricity"])
plt.xlabel("日期")
plt.ylabel("日期")# (解决横轴单位间隔太小)自定义刻度间隔:
x_major_locator = plt.MultipleLocator(7)
ax = plt.gca()
ax.xaxis.set_major_locator(x_major_locator)plt.title("窃电用户电量趋势")
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.show()
1.7相关性分析
相关性公式:
Pearson(皮尔逊)相关系数:
重要代码:
(120条消息) Seaborn绘制热力图_菇綡的博客-CSDN博客_seaborn 热力图
(122条消息) seaborn—sns.heatmap绘制热力图_哎呦-_-不错的博客-CSDN博客_heatmap热力图
# 计算相关性矩阵:
data.corr()
# 热力图绘制:
sns.set()
ax=sns.heatmap(uniform_data)
plt.show()
获取数据、计算相关系数
import pandas as pd
catering_sale = r'E:\data\catering_sale_all.xls'
print(catering_sale)
data = pd.read_excel(catering_sale,index_col='日期')
print(data)print(data.corr())
print(data.corr()['百合酱蒸凤爪'])
print(data['百合酱蒸凤爪'].corr(data['翡翠蒸香茜饺']))
绘制相关性热力图
import seaborn as sns
import numpy as np
sns.set()
uniform_data=np.array(data.corr())
ax=sns.heatmap(uniform_data)
plt.show()
1.8Lasso回归寻找关键影响属性
1.9灰色模型实现短期预测
1.10支持向量回归模型
2.库的学习
较基础:3.3 Contours 等高线图_哔哩哔哩_bilibili
【matplotlib常用统计图】05更多的绘图工具的了解_哔哩哔哩_bilibili
数据挖掘 之 数据可视化与数据分析相关推荐
- 大数据业务:数据沉淀、数据挖掘和数据可视化
数据沉淀.数据挖掘和数据可视化 数据沉淀 数据挖掘 数据呈现 此文 摘自 多智时代 对于数据业务,按照我们的理解,简单将其分为三块:数据沉淀.挖掘和可视化,每一块分别对应不同的模式及产品或服务.(数据 ...
- 《Microsoft Power BI数据可视化与数据分析》之超市运营数据分析
14.3.1 各省份销售额柱形图 在"字段"窗格中,将"销售额"字段拖到画布上的空白区域,然后将"省/自治区"字段拖动到"可视化 ...
- R语言与数据分析(1) 数据分析流程、数据挖掘、数据可视化
R软件 R是免费的 R是一个全面的统计研究平台,提供了各式各样的数据分析技术 R拥有顶尖的绘图功能 数据分析 什么是数据 数据是对客观事件进行记录并可以鉴别的符号,是对客观事物的性质.状态以及相互关系 ...
- c#split方法拆分为数据_Dexplot:基于pandas,比matplotlib更简单的数据可视化和数据分析工具...
Dexplot:建议准备学matplotlib和seaborn的数据可视化新手或者数据可视化爱好者食用 适用于长数据 比如网站用户留言的统计 特色是不用matplotlib 而用pandas导入数据( ...
- python分析股票数据_Python数据可视化——股票数据分析
1.背景 GAFATA,它表示的是GOOGLE,AMAZON,FACEBOOK,APPLE,TENCENT,ALIBABA这六家互联网巨头的首字母缩写.本文主要分析GAFATA这六家公司股票近一年的的 ...
- 数据可视化8_数据分析的一般流程
数据分析的一般流程 1. 提取数据(筛选) 2. 整合和重塑 3. 数据清洗(缺失值.空值.异常值.格式.量纲.名称) 缺失值的处理: dropna() 删除空值 fillna() 填充空值<- ...
- 数据可视化就是数据分析吗,两者之间是什么关系?
商业智能解决方案对于一些企业来说,可能是一个欺骗性的解决方案.许多企业声称商业智能软件解决方案实际上只能提供所需功能和效果的一半. 重要的是区分两种类型的业务分析和智能工具:端到端解决方案和仅是前端的 ...
- 数据可视化、数据分析常用的图表都有哪些?(1)
简单.易用的数据可视化工具,可以直观的帮助您展示数据结果,实时展示庞杂数据背后的业务现状. 下面,我将以Sugar BI为例,为大家讲解在日常的数据可视化中,我们大概都会用到哪些图表组件 Sugar ...
- 李开复微博数据分析--微博爬虫、数据挖掘、数据可视化(持续更新)
由于不想做测试,内心一直想做数据挖掘/数据分析,果断辞职重新找了,这是第一篇自己出的分析报告,可能还不够专业,以后会继续进步哒,希望小伙伴们多多指导~通过对李开复微博的分析,发现了一些有趣的结论,一一 ...
最新文章
- Planetary.js:帮助你构建超炫的互动球体效果
- eclipse导入项目Archive for required library cannot be read or is not a valid ZIP file
- iOS开发之功能模块--推送之坑问题解决
- 五一扣球练习2021-05-01
- activemq 控制台怎么看生产信息_Jmeter中间件处理-ActiveMQ
- SAP UI5的表格里如何显示复合列
- 如何设置背景图(前端开发)
- 他患“不死癌症” 坐轮椅考上清华并获特等奖学金
- db2数据库日期减一天_DB2 数据库中的日期与时间如何正确操作?(2)
- 初识数据库 1006
- 转载-深度学习与NLP 深度学习|机器学习|人工智能 精品视频教程合集分享
- 快速集成二维码扫描,使用最新版本的zxing(2017.11.10抽取zxing代码)
- struts2之数据处理的三种方式
- MapXtreme 随笔记录1
- umts是移动还是联通_网络模式中的UMTS是什么意思?
- 照片查看器找不见的解决办法
- 数据结构实验头歌 第1关:求图的最短路径
- 计算机中各进制的转换
- https://www.bilibili.com/video/BV1rP4y1X7HR/?spm_id_from=333.999.0.0vd_source=0d70ce6ab7081e676bd0
- 计算机专业期末背书,每到期末,我就后悔读了这个专业
热门文章
- html5:div 横向排列的方法。
- 2022新规驾驶人考试科目一总结
- JavaScript学习手册六:JS条件语句
- linux系统打开m3u8文件,linux:m3u8:如何从.m3u8中列出的段手动下载...
- 上反对下反对推理图_2020福建省考行测判断推理:直言命题之上下反对关系
- Rt-Thread 操作系统 memheap 管理多块内存的使用方法
- Android的三种动画详解(帧动画、View动画、属性动画)
- MED(median-edge detector)
- c++11新特性之完美转发(std::foward)
- 把Word/Pages/keynote..文件的图片抓取出来的方法