python基础——matplotlib

Matplotlib基本知识点

        7.1 功能:主要用于绘制二维图表

        7.2 matplotlib三层结构

  • 容器层
    • canvas
    • figure
    • axes
  • 辅助显示层
    • 添加x轴、y轴描述,标题等
  • 图像层
    • 绘制什么图像的声明

        7.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()

 

结果展示:
                  python基础——matplotlib_第1张图片
 
 

    7.4 折线图与基础绘图功能

            7.4.1 图像保存——一定要放到show()函数前面
                    
plt.savafig("保存路径")

 

            7.4.2 自定义x,y
                plt.xticks
                plt.yticks
                注意:第一个参数必须是数字,如果不是数字,要进行值替换
            示例:绘制天气折线图
 
import matplotlib.pyplot as plt
import random
# 创建数据
x = range(60)
y = [random.uniform(10,15)for i in x]


# 创建画布
plt.figure(figsize=(20,8),dpi=100)


# 图形绘制
plt.plot(x,y)


# 自定义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])      # 必须先写x值,最先传进去的必须是数字


# 图形展示
plt.show()

 

 
结果展示: python基础——matplotlib_第2张图片
           
            7.4.3 添加网格显示
                
plt.grid(True,linestyle="-",alpha=1)          # True为添加,linestyle="-"表示绘制网格方式为实线,alpha设置透明度

 

            7.4.4 添加描述
                    
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("一小时温度变化图",fontsize = 20)

 

                注意 图表中汉字显示为方框解决办法:
                            添加以下语句,指定默认字体为SimHei(黑体
                    
# 指定默认字体
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']


            7.4.5 添加图例

                    plt.legend()
                    注意:使用此函数时必须在画图时添加label属性
 
# 图形绘制
plt.plot(x,y_beijing,color="r",linestyle="-",label="北京")            # 设置线条颜色,线条类型:-实线,--虚线,-.点划线
plt.plot(x,y_shanghai,label="上海")
# 显示图例
plt.legend(loc=0)            #在画图时添加label属性           loc设置图例显示位置,默认为0右上角

 

               结果:                  python基础——matplotlib_第3张图片
 

        7.5 多坐标系显示图像

                fig,axes = plt.subplots(nrows=*,ncols=*,figsize=(*,*),dpi=*)
                        nrows——行数
                        ncols——列数
                        注意:有些方法需要添加set_*才能显示
            代码示例:分开绘制北京和上海11 点到12点的温度变化折线图
"""
多个坐标系显示图像
需求:绘制出北京和上海11点到12点的温度变化折线图


"""

import matplotlib.pyplot as plt
import random
# 指定默认字体
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']

# 创建数据
x = range(60)
y_beijing = [random.uniform(10,15)for i in x]
y_shanghai = [random.uniform(15,25)for i in x]

# 创建画布
# plt.figure(figsize=(20,8),dpi=50)
fig,axes = plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=50)

# 图形绘制
# plt.plot(x,y_beijing,color="r",linestyle="-",label="北京")
# plt.plot(x,y_shanghai,label="上海")
axes[0].plot(x,y_beijing,color="r",linestyle="-",label="北京")
axes[1].plot(x,y_shanghai,label="上海")


# # 自定义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])      # 必须先写x值,最先传进去的必须是数字
axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_labels[::5])
axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_labels[::5])


# # 添加网格显示
# plt.grid(True,linestyle="-",alpha=1)          # True为添加,linestyle="-"表示绘制网格方式为实线,alpha设置透明度
axes[0].grid(True,linestyle="-",alpha=1)
axes[1].grid(True,linestyle="-",alpha=1)


# # 添加描述
# plt.xlabel("时间",fontsize = 16)
# plt.ylabel("温度",fontsize = 16)
# plt.title("一小时温度变化图",fontsize = 20)
axes[0].set_xlabel("时间",fontsize = 16)
axes[0].set_ylabel("温度",fontsize = 16)
axes[0].set_title("北京一小时温度变化图",fontsize = 20)
axes[1].set_xlabel("时间",fontsize = 16)
axes[1].set_ylabel("温度",fontsize = 16)
axes[1].set_title("上海一小时温度变化图",fontsize = 20)


# 显示图例
# plt.legend()
axes[0].legend(loc=0)
axes[1].legend(loc=0)


# 图形展示
plt.show()

 

 
结果展示: python基础——matplotlib_第4张图片
 
 

        7.6 折线图的应用场景

                (1)表述数据变化
                (2)绘制数学图像
                举例:绘制y = sin(x)图像
"""
需求:绘制y = sinx 的图像
"""
import matplotlib.pyplot as plt
import numpy as np
# 1、创建数据
x = np.linspace(-10,10,1000)
y = np.sin(x)


# 2、创建画布
plt.figure(figsize=(20,8),dpi=50)


# 3、绘制图像
plt.plot(x,y)
# 添加网格
plt.grid()


# 4、展示图像
plt.show()

 

结果展示: python基础——matplotlib_第5张图片
 
 

        7.7 常见图形绘制

    • 折线图——plt.plot()

      • 变化

    • 散点图——plt.scatter()

      • 分布规律

    • 柱状图——plt.bar()

      • 统计、对比

    • 直方图——plt.hist()

      • 统计、分布

    • 饼图——plt.pie()

      • 占比

                使用示例:

"""
使用matplotlib绘制其他图像
"""


import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']


"""
1、散点图
    plt.scatter()
"""


# # 1.1、数据准备
# x = [1.2,1.6,0.9,3.8,2.5,2.7,1.4,5.6,5.7,4.2]
# y = [4.2,5.2,4.6,2.8,6.7,1.9,2.5,8.2,1.6,5.0]
#
# # 1.2、创建画布
# plt.figure(figsize=(20,8),dpi=50)
#
# # 1.3、绘制图像
# plt.scatter(x,y)
#
# # 1.4、展示图像
# plt.show()


"""
2、柱状图
    plt.bar()
    需求:绘制电影的播放量柱状图
"""

# 2.1数据准备
movie_name = ['雷神','诸神黄昏','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴','降魔传']
    # 横坐标
x= range(len(movie_name))
    # 播放量
y = [73853,57767,22354,15969,14839,8725,8716]
# 2.2创建画布
plt.figure(figsize=(20,8),dpi=50)


# 2.3绘制图像
plt.bar(x,y,color=['b','r','y','g','c','m','k'],width=0.5)
# x轴
plt.xticks(x,movie_name,fontsize=18)
plt.xlabel('电影名称',fontsize=20)
plt.ylabel('播放量',fontsize=20)
# 绘制网格
plt.grid()
# 添加标题
plt.title('某月电影播放量统计',fontsize=20)
# 2.4展示图象
plt.show()
结果展示:
python基础——matplotlib_第6张图片 python基础——matplotlib_第7张图片
 
拓展:https://matplotlib.org/index.html
            此链接为matplotlib官网,进入查找API的使用方法绘制各种图像
 
笔记中的练习代码下载链接: https://download.csdn.net/download/qq_39330829/12931297

你可能感兴趣的:(AI学习,python,机器学习,数据分析)