python基础学习--数据分析的概念及绘图

基本概念

数据分析

  1.为什么要学习数据分析

    1. 岗位需求
    2. 是python数据科学的基础
    3. 是机器学习的基础

  2.什么是数据分析

    数据分析是用适当的方法对收集来的大量数据进行分析,帮助人们作出判断,以便采取适当行动。

  3.数据分析流程

在这里插入图片描述

matplotlib

  1.简介

  matplotlib主要用于画图:

    1. 能将数据进行可视化,更直观的呈现
    2. 使数据更加客观、更具说服力
    3. matplotlib: 最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建。

  2.基本函数

注意:需要导入包matplorlib。
如:

from matplotlib import pyplot

x = range(2, 26, 2)
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 27, 22, 18, 15]
pyplot.plot(x, y)
pyplot.show()

在这里插入图片描述
绘图分类

折线图—plot()

  1. 特点:以折线的上升或下降来表示统计数量的增减变化的统计图,能够显示数据的变化趋势,反映事物的变化情况。(变化)
  2. 设置折线图
    设置线的样式
    pyplot.plot(x,[1,2,3,4,5],"3")
    marker属性样式:
样式描述样式描述
‘-’实线样式‘–’短横线样式
‘-.’点划线样式‘:’虚线样式
‘.’点标记‘,’像素标记
‘o’圆标记‘v’倒三角标记
‘^’正三角标记‘<’左三角标记
‘>’右三角标记‘1’下箭头标记
‘2’上箭头标记‘3’左箭头标记
‘4’右箭头标记‘s’正方形标记
‘p’五边形标记‘*’星形标记
‘h’六边形标记 1‘H’六边形标记 2
‘+’加号标记‘x’X 标记
‘D’菱形标记‘d’窄菱形标记
‘|’竖直线标记‘_’水平线标记

设置颜色
pyplot.plot(x,[1,2,3,4,5],"--",color='c')
颜色(设置颜色该颜色表中适用于matplotlib的大部分函数的color参数):

参数值含义
‘b’蓝色
‘g’绿色
‘r’红色
‘c’青色
‘m’品红色
‘y’黄色
‘k’黑色
‘w’白色

设置线的宽度
pyplot.plot(x,[1,2,3,4,5],"--",color='c',linewidth=5)

设置线的透明度
pyplot.plot(x,[1,2,3,4,5],"--",color='c',linewidth=5,alpha=0.5)
设置图表标题
pyplot.title("haha")
设置X\Y轴的标题
pyplot.xlabel("X轴", color="m")
设置旋转角度
pyplot.ylabel("℃", color="blue", fontproperties=font, rotation=30)
设置图片大小
pyplot.figure(figsize=(20, 80), dpi=80)
重新设置X轴刻度
pyplot.xticks(x)
保存图片
pyplot.savefig("./img.png")
查看系统支持的字体
print(font_manager.findSystemFonts())
设置中文字体

font = font_manager.FontProperties(fname="C:\\Windows\\Fonts\\simfang.ttf")
pyplot.xlabel("时间", fontproperties=font)
pyplot.ylabel("温度", fontproperties=font)

在同一张里有多条数据

font = font_manager.FontProperties(fname="C:\\Windows\\Fonts\\simfang.ttf")
x = range(0, 4)
y = [55, 58, 22, 66]

xTitle = ["1号", "2号", "3号", "4号"]
pyplot.xticks(x, xTitle, fontproperties=font,color="m")
pyplot.plot(x, y)
# 在同一张表里  有多条数据
y = [20, 40, 60, 50]
pyplot.plot(x, y)
pyplot.show()

设置同一个图中回值两个表

x = [1,2,4,5,7]
pyplot.subplot(2,1,1)
pyplot.plot(x,[1,2,3,4,5],"--",color='c',linewidth=5,alpha=0.5)
pyplot.title("haha")
pyplot.subplot(2,1,2)
pyplot.plot(x,[1,2,3,4,5],"--",color='c',linewidth=5,alpha=0.5)
pyplot.title("haha")
# pyplot.xlabel("X", color="m")
pyplot.show()

设置全局中文和负号

pyplot.rcParams['font.sans-serif']=['SimHei']
pyplot.rcParams['axes.unicode_minus']=False
from matplotlib import rcParams
rcParams.update({'font.size': 10, 'font.family': 'SimHei',“axes.unicode_minus”:False})

设置图例
pyplot.legend({"12号","13号"},loc="lower right",edgecolor="m",shadow=True,fancybox=False,facecolor="red",borderpad=5,labelspacing=2,handlelength=3,handleheight=5,handletextpad=3,borderaxespad=2,title="hhh")
参数与描述:

参数描述
locLocation code string, or tuple (see below).图例所有figure位置。可选参数值为:0: ‘best’;1: ‘upper right’;2: ‘upper left’;3: ‘lower left’;4: ‘lower right’;5: ‘right’;6: ‘center left’;7: ‘center right’;8: ‘lower center’;9: ‘upper center’;10: ‘center’
propthe font property字体参数
fontsizethe font size (used only if prop is not specified),可选参数值为: int or float or {‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’}
numpoints为线条图图例条目创建的标记点数
scatterpoints为散点图图例条目创建的标记点数
scatteryoffsets为散点图图例条目创建的标记的垂直偏移量
frameon控制是否应在图例周围绘制框架
fancybox控制是否应在构成图例背景的FancyBboxPatch周围启用圆边
shadow控制是否在图例后面画一个阴影
framealpha控制图例框架的 Alpha 透明度
edgecolor边框颜色
facecolorFrame facecolor. frameon不能设置为False
borderpad图例边框的内边距
labelspacing图例条目之间的垂直间距
handletextpad图例句柄和文本之间的间距
handlelength图例句柄的长度
handleheight图例句柄的高度
borderaxespad轴与图例边框之间的距离
titlethe legend title

添加网格
pyplot.grid(axis="x",alpha=0.5,color="r",linestyle="--",linewidth=0.8)
参数及描述:

参数描述
axis取值为‘both’, ‘x’,‘y’。就是想绘制哪个方向的网格线
alpha透明度
color设置网格线的颜色。或者用c来代替color
linestyle也可以用ls来代替linestyle
linewidth设置网格线的宽度

散点图—scatter()

  1. 特点:用两组数据构成多个坐标点,考察坐标点的分布,判断两变量。之间是否存在某种关联或总结坐标点的分布模式。判断变量之间是否存在数量关联趋势,展示离群点(分布规律)
  2. 示例:
sc=pyplot.scatter(x, y,s=50,marker="o",c=y,edgecolors=["red","m","g","b"],alpha=0.5)
pyplot.colorbar(sc)
  1. 参数及描述:
    def scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)
参数解释描述
x,y设定位置都是向量,而且必须长度相等。
s设置大小标量或形如shape[n,]数组,可选,默认为20。
c设置颜色,可选,默认:‘b’,注意c可以是单个颜色格式的字符串,也可以是一系列颜色的二维数组,即可以是一个RGB或RGBA二维数组,参数值可参考上文的颜色表
marker:设置样式来源为matplotlib.markers.MarkerStyle,可选,默认值:‘o’,参数值为上文的marker的属性样式表
cmap设置色彩盘原型为Colormap,可选,默认为None。参数值为Colormap实例
norm标准化原型为Normalize,可选,默认为None。参数值为:数据亮度0-1,float数据。解释:规格化实例用于将亮度数据缩放为0、1。仅当c是一个浮点数组时才使用norm。如果没有,则使用默认颜色。正常化。
vmin,vmax亮度设置标量,可选,默认为None。若norm设置了,该参数就无效。
alpha透明度设置标量,可选,默认值:None,alpha混合值,介于0(透明)和1(不透明)之间,即值为0-1
linewidths线宽设置标量或array_like,可选,默认值:无。如果无,则默认为(lines.linewidth,)。linewidth 是对线条的宽度设置,绘图时候像素点大小是不变的。s 是设置表示图形的尺寸
edgecolors设置轮廓颜色颜色或颜色顺序,可选,默认值:无。edgecolors=[“red”,“m”,“g”,“b”]

条形图—bar()

  1. 特点:排列在工作表的列或行中的数据可以绘制到条形图中。绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计)
  2. 示例:
a = [44,56,77,23,99,40]
pyplot.bar(range(len(a)),a,width=0.8,color="y",edgecolor="b"
           lable=[])
pyplot.show()
  1. 参数及描述:
    bar(left, height, width, color,alpha, align, yerr)
leftx轴的位置序列,一般采用range函数产生一个序列,但是有时候可以是字符串
heighty轴的数值序列,也就是柱形图的高度,一般就是我们需要展示的数据;
alpha透明度,值越小越透明
align设置plt.xticks()函数中的标签的位置,一般是center
width为柱形图的宽度,一般这是为0.8即可;
color或facecolor柱形图填充的颜色;
edgecolor图形边缘颜色
label解释每个图像代表的含义
yerr让柱形图的顶端空出一部分。
  1. 例子:
a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士","摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归","生化危机6:终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:殊死一战","蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",]

b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]
font = font_manager.FontProperties(fname="C:\\Windows\\Fonts\\simfang.ttf")
pyplot.figure(figsize=(20,10))
pyplot.bar(range(len(a)),b,color="blue")
pyplot.xticks(range(len(a)),a,fontproperties=font)
pyplot.show()

直方图—hist()

  1. 特点:
    由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据范围,纵轴表示分布情况。绘制连续性的数据,展示一组或者多组数据的分布状况(统计)
  2. 示例:
x = range(10)
data=[131,  98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119]
pyplot.hist(data,bins=10,histtype="bar",color="m",edgecolor="r")
pyplot.grid()
#bins是把图平均分成几份
pyplot.show()
  1. 参数及描述:
    matplotlib.pyplot.hist(x,bins=None,range=None, density=None, bottom=None, histtype='bar', align='mid', log=False, color=None, label=None, stacked=False, normed=None)
参数解释描述
xx轴数据这个参数是指定每个bin(箱子)分布的数据,对应x轴
bins设置条数这个参数指定bin(箱子)的个数,也就是总共有几条条状图
normed标准化是否将直方图的频数转换成频率
histtype设置类型指定直方图的类型,默认为bar,还有barstacked/sted/stepfilled
orientation设置方向水平还是垂直【‘horizontal’,‘vertical’】默认为垂直方向
align设置对齐方式设置条形边界值的对其方式,默认为mid,还有’left’,‘right’
color设置颜色设置直方图颜色
label设置标签设置直方图的标签,可通过legend展示其图例
stacked是否堆叠当有多个数据时,是否需要将直方图呈堆叠摆放,默认水平摆放
log是否log变化是否需要对绘图数据进行log变换
rwidth设置宽度设置直方图条形宽度的百分比
bottom设置基准线可以为直方图的每个条形添加基准线,默认为0
  1. 例子:
假设你获取了250部电影的时长(列表a中),希望统计出这些电影时长的分布状态(比如时长为100分钟到120分钟电影的数量,出现的频率)等信息,你应该如何呈现这些数据?
a=[131,  98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115,  99, 136, 126, 134,  95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117,  86,  95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123,  86, 101,  99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140,  83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144,  83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137,  92,121, 112, 146,  97, 137, 105,  98, 117, 112,  81,  97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112,  83,  94, 146, 133, 101,131, 116, 111,  84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]

binWidth = 3
groupNum = int((max(a)-min(a))/binWidth)

pyplot.hist(a,[min(a)+i*binWidth for i in range(groupNum)],color="orange")
pyplot.grid(True)
pyplot.show()

饼图

  1. 特点:
    饼图广泛得应用在各个领域,用于表示不同分类的占比情况,通过弧度大小来对比各种分类。饼图通过将一个圆饼按照分类的占比划分成多个区块,整个圆饼代表数据的总量,每个区块(圆弧)表示该分类占总体的比例大小,所有区块(圆弧)的加和等于 100%。
  2. 示例:
labels=["Python","Java","C","JavaScript"]
sizes=[40,20,10,30]
colors='yellowgreen','gold','lightskyblue','lightcoral'
explode=[0.1,0,0,0]
pyplot.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%.1f%%',shadow=True,startangle=50,labeldistance=1.1,radius=0.7)
pyplot.show()
  1. 参数及特点:
    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设置数量自动算百分比为一个存放各部分占比的向量
labels设置标签设置每部分的名称,设置各类的标签,元素一一对应
autopct设置百分比标签默认为:None,字符串,函数,百分比标签,可选,pct其实就是percent的缩写,保留小数点后一位:%.1f%%
colors设置颜色每部分的颜色,需一一对应于标签
explode计算距离每一部分离开中心点的距离 ,元素数目与x相同且一一对应
startangle绘制角度起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起
shadow显示阴影默认为False,即不显示阴影
labeldistance设置标签位置相对于半径的比例,默认值为1.1, 如<1则绘制在饼图内侧
pctdistance设置标签位置类似于labeldistance,指定autopct的位置刻度,默认值为0.6;
radius设置半径控制饼图半径,默认值为1;
counterclock指定指针方向布尔值,可选参数,默认为:True,即逆时针。将值改为False即可改为顺时针。
wedgeprops参数传递字典类型,可选参数,默认值:None。参数字典传递给wedge对象用来画一个饼图。例如:wedgeprops={‘linewidth’:3}设置wedge线宽为3。
textprops设置格式设置标签(labels)和比例文字的格式;字典类型,可选参数,默认值为:None。传递给text对象的字典参数。
center设置位置浮点类型的列表,可选参数,默认值:(0,0)。图标中心位置。
frame设置轴框架布尔类型,可选参数,默认值:False。如果是true,绘制带有表的轴框架。
rotatelabels指定角度布尔类型,可选参数,默认为:False。如果为True,旋转每个label到指定的角度。
  1. 例子:
    饼图的详细解析:

https://www.cnblogs.com/biyoulin/p/9565350.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值