matplotlib学习记录

学习目标:matplotlib入门


内容

绘图流程

    1.创建画布
    2.绘制图像
    3.显示图像

事例:


import matplotlib.pyplot as plt
#1.创建画布
plt.figure(figsize=(20,8),dpi=100)
#2.绘制图像
x=[1,2,3]
y= [4,5,6]
plt.plot(x,y)
#3.显示图像
plt.show( )

matplotlib三层结构

容器层

canvas:充当画板的角色

figure:充当画布的角色

axes:是应用层的第二层,充当画布上画图区域的角色
     Figure:指整个图形(可以通过plt.figure0)设置画布的大小和分辨率等)
     Axes(坐标系):数据的绘图区域
     Axis(坐标轴):坐标系中的一条轴,包含大小限制、刻度和刻度标签

辅助显示层

添加x轴,y轴,标题声明

辅助显示层为Axes(绘图区)内的除了根据数据绘制出的图像以外的内容,主要包括Axes外观(facecolor)、边框线(spines)、坐标轴(axis)、坐标轴名称(axis label)、坐标轴刻度(tick)、坐标轴刻度标签(tick label)、网格线(grid)、图例(legend)、标题(title)等内容。

图像层

绘制什么图像的声明

图像层指Axes内通过plot(折线图)、scatter、bar、histogram、pie等函数根据数据绘制出的图像

折线图(plot)与基础绘图功能

1.设置画布属性及图像保存


plt.savefig()注意:图像保存一定要放到show前面

import matplotlib.pyplot as plt
# #1.创建画布
plt.figure(figsize=(10,5),dpi=100)
# #2.绘制图像
x=[1,2,3,4,7,9]
y= [4,5,6,11,5,1]
plt.plot(x,y)
plt.savefig("./test.png")
# #3.显示图像
plt.show( )
# figsize:指定图的长宽
# dpi:图像的清晰度

2.自定义添加x轴,y轴刻度


plt.xticks     plt.yticks

函数语法
        xticks(ticks=None, labels=None, **kwargs)

函数参数
        ticks:x轴刻度位置的列表,若传入空列表,即不显示x轴

        labels:放在指定刻度位置的标签文本。当ticks参数有输入值,该参数才能传入参数

        **kwargs:文本属性用来控制标签文本的展示,例如字体大小、字体样式等

注意:第一个参数必须是数字,如果不是数字,需要进行值替换

import matplotlib.pyplot as plt
import random
plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文字体设置-黑体
x= range(60)
y=[random.uniform(10,15) for i in x]
#1.创建画布
plt.figure(figsize=(20,8),dpi=100)
#2.图形绘制
plt.plot(x,y)
#2.1添加x,y轴刻度
y_ticks =range(40)
x_ticks_labels=["11点{}分".format(i)for i in x]
plt.yticks(y_ticks[::5])
plt.xticks(x[::5],x_ticks_labels[::5])

# 3.图像展示
plt.show()

3.添加网格


plt.grid(T,linestyle='--',alpha=1):

参数:
linestyle--绘制网格的方式

alpha--透明度

4.添加描述信息


plt.xlabel("时间")

plt.ylabel("温度")

plt.title("一小时温度变化图",fontsize=20)


5.多次plot


直接进行绘制

6.显示图例(常用在多条曲线)


plt.legend()

注意:需要在显示之前,声明plot里面的具体值

import matplotlib.pyplot as plt
import random
plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文字体设置-黑体
x= range(60)
y_shanghai=[random.uniform(10,15) for i in x]
y_beijing=[random.uniform(15,20) for i in x]
#1.创建画布
plt.figure(figsize=(10,8),dpi=100)
#2.图形绘制
plt.plot(x,y_shanghai, label="上海",color="r")
plt.plot(x,y_beijing, label='北京')
# 2.1 添加x,y轴的刻度
x_labels_ticks=["11点{}分".format(i) for i in x]
y_labels_ticks =range(5,30)
plt.xticks(x[::5],x_labels_ticks[::5])
plt.yticks(y_labels_ticks[::5])
#2.2 添加网格线
plt.grid(linestyle="--",alpha=0.5)
#2.3 添加描述信息
plt.xlabel("时间",fontsize=16)
plt.ylabel("温度",fontsize=16)
plt.title("某城市11点-12点温度变化",fontsize=20)
#2.4 增加图例
plt.legend(loc="best")
# 3.显示
plt.show()

7.多个坐标系图像显示

在创建画布时用 

fig,axes =plt.subplots()

nrows --几行
ncols --几列
注意:有些方法需要添加set_*

常见图形的绘制

matplotlib能够绘制:折线图,散点图,柱状图,直方图,饼状图

散点图

plt.scatter()

import matplotlib.pyplot as plt
plt.figure(figsize=(10,5),dpi=100)
x=[2,3,4,6,4,57,78,9,4,12]
y=[2,4,5,6,8,98,90,7,3,21]
plt.scatter(x,y)
plt.show()



柱状图

--plt.bar

统计、对比

直方图

--plt.hist()

统计,分布


饼图

--plt.pie

后续学习方法

Matplotlib — Visualization with Python

  • 24
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值