本文参考文章:https://www.cnblogs.com/magle/p/7389240.html
Python之Matplotlib 导入相关模块import matplotlib.pyplot as plt#Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。
import pandas as pd# pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
import numpy as np#numpy是Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
基本图表
散点图:scatter
N = 1000
x = np.random.randn(N)#randn函数返回一个或一组样本,具有标准正态分布。
y = np.random.randn(N)
plt.scatter(x,y)
plt.show()#如果不使用plo.show()图表是显示不出来的,因为可能你要对图表进行多种的描述,所以通过显式的调用show()可以避免不必要的错误。
#scatter的函数签名如下:
#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:形如shape (n,)的数组 #表示的是大小为(n,)的数组,也就是我们即将绘制散点图的数据点
#s:点的大小,默认20,参数可选
#c:点的取色序列,默认蓝色‘b’,但是c不可以是一个单独的RGB数字,也不可以是一个RGBA的序列。可以是他们的2维数组(只有一行)
#marker:点的形状,默认是圆
#cmap:Colormap实体或者是一个colormap的名字
#norm:Normalize实体来将数据亮度转化到0-1之间,如果没有申明,就是默认为colors.Normalize。
#vmin,vmax:实数,当norm存在的时候忽略。用来进行亮度数据的归一化。
#alpha:点的透明度, 实数,0-1之间
#linewidths:也就是标记点的长度。
#edgecolors:边缘颜色
运行结果:
plt.scatter(x,y,c='rykgm',s=100,marker='>')#这里运行报错,应该是c的RGB或者RGBA问题,后续查资料修正
plt.show()
运行结果:(出错,后续查询改正)
plt.scatter(x,y,alpha=0.5)
plt.show()
运行结果:
plt.scatter(x,y,edgecolors='r')
plt.show()
柱状图:bar
data = [5, 20, 15, 25, 10]
plt.bar(range(len(data)),data)#len()返回字符串、列表、字典、元组等长度,range()函数它能返回一系列连续增加的整数
plt.show()
#bar的函数签名:
#bar(left, height, width=0.8, bottom=None, **kwargs)
#left,height,width,bottom这四个参数确定了柱体的位置和大小,具体定位:
#(left-width/2,bottom)为左下角位置
#(left+width/2,bottom+height)为右上角位置
运行结果:
plt.bar([0.3,1.7,4,6,7], data, width=0.6, bottom=[10,0,5,0,5])
plt.show()
运行结果:
#对于柱状图,还可以设置以下参数:
#颜色: color
#描边: 边缘颜色:edgecolor(ec);边缘样式:linestyle(ls);边缘粗细:linewidth(lw)
#填充: hatch: 可取值为: /,\,|,-,+,×,o,O,.,*
#位置标志: tick_label
labels = ['Tom', 'Dick', 'Harry', 'Slim', 'Jim']
plt.bar(range(len(data)), data, color='rgb', ec='r', ls='--', lw=2, hatch='o', tick_label=labels)#rgb:颜色 比如white:整数值(255,255,255),小数值(1,1,1)
plt.show()
运行结果:
#堆叠柱状图
#通过bottom参数,可以轻松实现堆叠柱状图
size = 5
x = np.arange(size)
a = np.random.random(size)#random() 方法返回随机生成的一个实数,它在[0,1)范围内。
b = np.random.random(size)
plt.bar(x, a, label='a')
plt.bar(x, b, bottom=a, label='b')
plt.legend()#plt.legend()函数主要的作用就是给图加上图例,plt.legend([x,y,z])里面的参数使用的是list的的形式将图表的的名称喂给这和函数。
plt.show()