Python Matplotlib绘图

  1. Matplotlib安装
    cmd输入:pip install Matplotlib
    点我进入Matplotlib官网

  1. 画布(fig)与子图(ax)
    需要导入:form matplotlib import pyplt as plt

plt.figure(figsize,dpi)创建画布

plt.figure(属性)
figsize = (widtht,hight)设置画布宽度和高度
dpi画布透明度

plt.subplot(x y index)创建子图

plt.subplot(属性)
x行数
y列数
index索引(从1开始,从左往右,从上往下)

plt.subplots(nrows, ncols, sharex = False, sharey = False)创建画布和子图
返回值:fig,ax

plt.subplots(属性)
nrows子图的行数
ncols子图的列数
sharex所有子图使用相同的x轴刻度
sharey所有子图使用相同的y轴刻度
通用方法
plt.figure(figsize=None,dpi=None)生成新的画布,figsize:画布大小(传参:元组),dpi:透明度
plt.savefig(fname)保存图片,fname:保存图片位置
plt.xticks(ticks=None,lables=None)ticks:设置x轴刻度的值,labels:刻度标签
plt.yticks(ticks=None,lables=None)ticks:设置y轴刻度的值,labels:刻度标签
plt.xlabel(xlabel)设置x轴标签
plt.ylabel(ylabel)设置y轴标签
plt.title()设置图标题
plt.grid()根据x轴和y轴的数值展示轴网格
plt.legend(prop)显示图例标签,prop:局部字体设置
plt.annotate(text,xy,xytext,arrowprops = {})数据标签,text:文本标签,xy:标点位置(元组),xytext:文本位置(元组),arrowprops:箭头设置
plt.show()释放空间,并显示已绘制的图
plt.subplots_adjust(wspace,hspace)调整子图之间的间距,wspace(左右间距),hspace(上下间距)

zip() 函数
作用:用于生成坐标
zip(x,y)生成坐标(x,y必须数量一致)

zip(属性)
xx轴上的位置
yy轴上的位置

  1. 中文显示问题
    解决方法:

方法一

import matplotlib
font = {
    'family':'SimHei',
    'weight':'bold',
    'size':12
}
matplotlib.rc("font", **font)

方法二

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False   # 步骤二(解决坐标轴负数的负号显示问题)

方法三

from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties 
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)
x = [1,2,3,4]
y = [3,2,1,3]
plt.plot(x,y)
plt.xlabel("x轴标签",fontproperties=font)
plt.show()

  1. 折线图
    折线图以折线的上升或下降来表示统计数量的增减变化的统计图
    特点:能够显示数据的变化趋势,反映事物的变化情况
    折线图可以通过plt.plot()函数来绘制

plt.plot(x,y,color,linestyle,marker,label) 构件折线图
(x,y元素必须一致)

plt.plot(属性)
x在x轴上的点
y在y轴上的点
color设置线的颜色
linestyle设置线的样式
marker标记样式
label图例标签
  1. 散点图
    散点图用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式
    特点:判断变量之间是否存在数量关联趋势,表示离群点(分布规律)
    散点图通过plt.scatter() 函数

plt.scatter(x,y)来构件散点图

plt.scatter(属性)
x在x轴上的点
y在y轴上的点
  1. 柱状图及条形图
    条形图是用宽度相同的条形的高度或长短来表示数据多少的图形。条形图可以横置或纵置,纵置时也称为柱形图。
    特点:1.能够使人们一眼看出各个数据的大小。
            2.易于比较数据之间的差别。
    通过 plt.bar() 方法绘制柱状图, plt.barh() 方法绘制条形图

plt.bar(x,height,width = 0.8,bottom,align = "center")构建 柱状图

plt.bar(属性)
x在x轴上的位置
height在y轴上的高度
width = 0.8柱子的宽度
bottom = “None”柱子底部的起始位置
align = “center”校准位置

plt.barh(y,width,height = 0.8,align = "center")构建 条形图

bar.barh(属性)
y在x轴上的长度
width在y轴上的位置
height柱子的宽度
align = “center”校准位置
  1. 直方图
    直方图由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据范围,纵轴表示分布情况
    特点:绘制连续性的数据,展示一组或者多组数据的分布情况(统计)
    通过 plt.hist() 方法绘制

plt.hist(x,bins = None,density =False)构建图形

plt.hist(属性)
x在x轴上的位置
bins = None组数(默认为10)
density = False频率(默认为频数)
  1. 扇形图
    扇形图,用整个圆表示总数,用圆内各个扇形的大小表示各部分数量占总数的百分数。
    通过 plt.pie() 方法绘制

plt.pie(x, explode=None, labels=None,autopct=None,shadow=False)构建图形

plt.pie(属性)
x扇形数据
explode = None设置某几个分块是否要分离饼图
labels = None每块扇形标签
autopct = None百分比数据标签
shadow = False是否显示阴影
plt.pie返回值
patchs绘制饼图每块对象
texts文本列表
autotexts百分比的文本列表
  1. 箱型图
    箱线图是一种直观简洁的方式去呈现一组数据的分布。 箱线图广泛用于各个数据分析领域,它能非常简单明了地显示一组数据中5个重要数值,并且还能发现一组数据中的存在的异常值。
五个重要数值
最大值最小值中位数下四分位数上四分位数

通过 plt.boxplot() 方法绘制
ply.boxplot(x,notch=None,sym=None,vert=None,whis=None,positions=None,widths=None,labels=None,meanline=None,showmeans=None)构建图形

plt.boxplot(属性)
x需要绘制的箱型图的数据
notch = None是否展示置信区间 默认为False
sym = None代表异常点的符号表示 默认为圆点
vert = None是否是垂直的 默认是True
whis = None上下限系数 默认为1.5
positions = None设置每个盒子的位置
widths = None设置每个盒子的宽度
labels = None每个盒子的label
meanline和showmean都为True的时候 会展示平均线
  1. 雷达图
    雷达图(Radar Chart)又被叫做蜘蛛网图,适用于显示三个或更多的维度的变量的强弱情况。比如某个企业在哪些业务方面的投入等,都可以用雷达图方便的表示。

用过 plt.polar() 来绘制
plt.polar(theta,r)来构建图形

plt.polar
theta分割区块
r数据

(区块和数据个数必须相等)

  1. Axes (子画)
    Axes容器是用来创建具体的图形的。比如画曲线,柱状图,都是画在上面。所以之前我们学的使用plt.xx绘制各种图形(比如条形图,直方图,散点图等)都是对Axes的封装
方法
axes.set_xlim(min,max)限制x轴的范围
axes.set_ylim(min,max)限制y轴的范围
axes.text(x,y,text)在坐标位置标注文本
axes.set_xlabel(text)设置x轴文本标签
axes.set_ylabel(text)设置y轴文本标签
axes.twinx()共享x轴
axes.twiny()共享y轴
axes.minorticks_on()显示x与y轴的子刻度
  1. Axis(轴)
    Axis代表的是x轴或者y轴的对象。包含Tick(刻度)对象,TickLabel刻度文本对象,以及AxisLabel坐标轴文本对象。axis对象有一些方法可以操作刻度和文本等。

axis: xaxis,yaxis

方法
axes.axis.set_label_coords(x,y)设置x或y轴的文本标签位置

自定义刻度格式

from matplotlib import ticker

formatter = ticker.FormatStrFormatter("自定义格式")

ax1.yaxis.set_major_formatter(formatter)
  1. 多图布局

调整子图间距 fig.tight_layout(h_pad=None,v_pad=None)(不传参,默认自动调整)

fig.tight_layout(属性)
h_pad上下间距
v_pad左右间距

自定义布局
方法一

from matplotlib import pyplot as plt
plt.figure()
plt.subplot(221)
plt.subplot(223)
plt.subplot(122)

在这里插入图片描述方法二

fig.add_gridspec(nrows=1, ncols=1,width_ratios,height_ratios)创建栅栏模式

fig.add_gridspec(属性)
nrows
nclos
width_ratios宽的比值
height_ratios高的比值
from matplotlib import pyplot as plt
fig = plt.figure()
gs = fig.add_gridspec(2,2)
fig.add_subplot(gs[0,:])
fig.add_subplot(gs[1,0])
fig.add_subplot(gs[1,1])

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值