python如何使用Matplotlib画图

本文详细介绍了如何在Python中使用Matplotlib进行绘图,包括了解官方文档、基本概念、常用图形如散点图、折线图和柱状图的绘制步骤,以及多图、数组绘图、3D图、热力图和饼图的实例。通过实际操作演示,帮助读者掌握Matplotlib库的使用技巧。
摘要由CSDN通过智能技术生成

python如何使用Matplotlib画图

一、了解官方文档:

这里是Matplotlib库的官方文档,可以在对知识点模糊的时候进行查询,不需要完全掌握。
链接: Matplotlib官方文档

二、基本知识:

  • 画板figure,画纸Sublpot画质,可多图绘画
  • 画纸上最上方是标题title,用来给图形起名字
  • 坐标轴Axis,横轴叫x坐标轴label,纵轴叫y坐标轴ylabel
  • 图例Legend 代表图形里的内容
  • 网格Grid,图形中的虚线,True显示网格
  • 点 Markers:表示点的形状。

为了更直观的展示,这里将各个指标放在直角坐标系中展示出来
在这里插入图片描述

在这里插入图片描述

三、常用图形:

基本的视觉元素有三种:点、线、柱状。

  • 对于数值类型,用点来进行可视化。例如想要知道学生为某科课程花费的时间和考试成绩两者之间的关系,可以把每个学生的数据绘制一个点,绘制出散点图 scatter plot,可以查看两者之间的相关性。
  • 对于时间序列的数据类型,用线条来进行可视化。用线条将相关的数据点连接在一起,帮助我们观察随着时间的变化数据的变化趋势,这样的图叫做折线图line plot。
  • 对于分类数据,需要查看数据是如何在各个类别之间分布的,可以使用柱状图 bar plot。
  • 用来表示第三个维度时,可以使用颜色。一般很难在二维平面上表示三维数据,这时可以使用颜色视觉元素。最典型是热图heatmap,通过用渐进颜色显示用户热衷的区域或所在地理区域的图。
#导入matplotlib的pyplot模块
import matplotlib.pyplot as plt

四、列表绘图步骤

1、定义X和Y

用列表定义X轴和Y轴上的值

2、绘制

(1)图形属性

color颜色

marker标记

linestyle线条

axis表示坐标轴范围

(2)添加文本

坐标轴plt.xlable&ylable

标题plt.title()

plt.annotate
(1)点坐标xy=(2,5)
(2)注释坐标xytext=(2,10)
(3)arrowprops箭头的形状

3、显示图形

plt.show()

五、基础绘图

1、基础绘图步骤

#导入matplotlib的pyplot模块
import matplotlib.pyplot as plt

#第一步:定义x轴和y轴
x = [1,2,3,4]
y = [1,4,9,16]
#第二步:使用plot绘制图像并传入上述x,y值
plt.plot(x,y)
#第三步:显示图形
plt.show()

在这里插入图片描述

2、添加属性

#导入matplotlib的pyplot模块
import matplotlib.pyplot as plt

#第一步:定义x轴和y轴
x = [1,2,3,4]
y = [1,4,9,16]
#第二步:使用plot绘制图像并传入上述x,y值
plt.plot(x,y,color='r',marker='o',linestyle='dashed')
'''
axis表示坐标轴范围
语法为plt.axis([x最小值,x最大值,y最小值,y最大值])
'''
plt.axis([0,6,0,20])
#第三步:显示图形
plt.show()

在这里插入图片描述

3、添加文本

#导入matplotlib的pyplot模块
import matplotlib.pyplot as plt

#第1步:定义x和y坐标轴上的点
x=[1, 2, 3, 4]
y=[1, 4, 9, 16]
#第2步:使用plot绘制线条 第1个参数是x的坐标值,第2个参数是y的坐标值
plt.plot(x,y)
#添加文本 #x轴文本
plt.xlabel('x坐标轴')
#y轴文本
plt.ylabel('y坐标轴')
#标题
plt.title('标题')
#添加注释 参数名xy:箭头注释中箭头所在位置,参数名xytext:注释文本所在位置,
#arrowprops在xy和xytext之间绘制箭头, shrink表示注释点与注释文本之间的图标距离

plt.annotate('我是注释', xy=(2,5), xytext=(2, 10),
            arrowprops=dict(facecolor='black', shrink=0.01),
            )

#第3步:显示图形
plt.show()

在这里插入图片描述

六、多图绘制

1、plt.figure()创建画板,1为无参数默认画板1

2、plt.subplot画纸

  • 参数1;行数

  • 参数2;列数

  • 参数3;选择画纸

  • ax2=plt.subplot(2,1,2)

    subplot()方法里面传入的三个数字 前两个数字代表要生成几行几列的子图矩阵,第三个数字代表选中的子图位置 2行1列的图 (2,1,选择1或者2画纸) subplot(2,1,1)生成一个2行1列的子图矩阵,当前是第一个子图

3、在选择画纸上绘画plt.plot([1,2,3])

4、plt.show()显示图形

#创建画板1
fig = plt.figure(1) #如果不传入参数默认画板1
#第2步创建画纸,并选择画纸1
ax1=plt.subplot(2,1,1)   
#在画纸1上绘图
plt.plot([1, 2, 3])
#选择画纸2
ax2=plt.subplot(2,1,2)
#在画纸2上绘图
plt.plot([4, 5, 6])
#显示图像
plt.show()

在这里插入图片描述

七、数组绘图

  • 第一步,导入numpy包,再用numpy的一维数组生成一个等差数组,用arange()方法。本例数组中的最小值为0,最大值为5,后一个数据比前一个大0.2。
  • 第二步,定义三个折线图的坐标值,分别用x1,x2,x3表示三个坐标轴上x轴的数值,用y1,y2,y3表示y轴上的数值,这些坐标值都是一维数组。
  • 第三步,绘制出图形
#导入包numpy
import numpy as np
#定义一维数组
t = np.arange(0, 5, 0.2)

#使用数组同时绘制多个线性
#线条1
x1=y1=t
#线条2
x2=x1
y2=t**2
#线条3
x3=x1
y3=t**3
#使用plot绘制线条
linesList=plt.plot(x1, y1,  
         x2, y2,  
         x3, y3 )
#用setp方法可以同时设置多个线条的属性
plt.setp(linesList, color='r')
plt.show()
print('返回的数据类型',type(linesList))
print('数据大小:',len(linesList))

在这里插入图片描述

八、绘制图形

1、简单柱状图

假设你有一个名为data.xlsx的Excel文件,包含两列数据:类别和数量。

import pandas as pd
import matplotlib.pyplot as plt

# 读取Excel数据
df = pd.read_excel('data.xlsx')

# 提取类别和数量数据
x = df['类别']
y = df['数量']

# 绘制柱状图
plt.bar(x, y)

# 添加标题和标签
plt.title('柱状图示例')
plt.xlabel('类别')
plt.ylabel('数量')

# 显示图形
plt.show()
2、横向柱状图
import pandas as pd
import matplotlib.pyplot as plt

# 读取Excel数据
df = pd.read_excel('data.xlsx')

# 提取类别和数量数据
x = df['类别']
y = df['数量']

# 绘制横向柱状图
plt.barh(x, y)  # 使用barh函数绘制横向柱状图

# 添加标题和标签
plt.title('横向柱状图示例')
plt.xlabel('数量')
plt.ylabel('类别')

# 显示图形
plt.show()
3、堆叠柱状图
import pandas as pd
import matplotlib.pyplot as plt

# 读取Excel数据
df = pd.read_excel('data.xlsx')

# 提取数据
categories = df['类别']
values1 = df['数值1']
values2 = df['数值2']

# 创建堆叠柱状图
plt.bar(categories, values1, label='数值1')
plt.bar(categories, values2, bottom=values1, label='数值2')

# 添加标题和标签
plt.title('堆叠柱状图示例')
plt.xlabel('类别')
plt.ylabel('数值')
plt.legend()

# 显示图形
plt.show()
4、单折线图
import pandas as pd
import matplotlib.pyplot as plt

# 读取Excel数据
df = pd.read_excel('data.xlsx')

# 提取数据
categories = df['类别']
values = df['数值']

# 创建折线图
plt.plot(categories, values, marker='o', color='b', linestyle='-')

# 添加标题和标签
plt.title('折线图示例')
plt.xlabel('类别')
plt.ylabel('数值')

# 显示图形
plt.show()
5、多折现图
import pandas as pd
import matplotlib.pyplot as plt

# 读取Excel数据
df = pd.read_excel('data.xlsx')

# 提取数据
categories = df['类别']
values1 = df['数值1']
values2 = df['数值2']
values3 = df['数值3']

# 创建多条折线图
plt.plot(categories, values1, marker='o', color='b', linestyle='-', label='数据1')
plt.plot(categories, values2, marker='s', color='r', linestyle='--', label='数据2')
plt.plot(categories, values3, marker='^', color='g', linestyle=':', label='数据3')

# 添加标题和标签
plt.title('多条折线图示例')
plt.xlabel('类别')
plt.ylabel('数值')
plt.legend()

# 显示图形
plt.show()

6、散点图
import pandas as pd
import matplotlib.pyplot as plt

# 读取Excel数据
df = pd.read_excel('data.xlsx')

# 提取数据
x_values = df['X轴数据']
y_values = df['Y轴数据']

# 创建散点图
plt.scatter(x_values, y_values, color='b', marker='o')

# 添加标题和标签
plt.title('散点图示例')
plt.xlabel('X轴数据')
plt.ylabel('Y轴数据')

# 显示图形
plt.show()
7、雷达图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 读取Excel数据
df = pd.read_excel('data.xlsx')

# 提取数据
categories = df['类别']
values = df.drop('类别', axis=1).values[0]  # 假设只有一行数据

# 创建雷达图
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
theta = np.linspace(0, 2 * np.pi, len(categories), endpoint=False)
ax.fill(theta, values, 'b', alpha=0.1)
ax.plot(theta, values, 'b', linestyle='solid')
ax.set_ylim(0, 10)

# 设置类别标签
ax.set_thetagrids(theta * 180/np.pi, labels=categories)

# 显示图形
plt.show()
8、箱形图
import pandas as pd
import matplotlib.pyplot as plt

# 读取Excel数据
df = pd.read_excel('data.xlsx')

# 提取需要绘制箱形图的数据列
data = [df['数据列1'], df['数据列2'], df['数据列3']]

# 创建箱形图
plt.boxplot(data, labels=['数据列1', '数据列2', '数据列3'])

# 添加标题和标签
plt.title('箱形图示例')
plt.ylabel('数值')

# 显示图形
plt.show()
9、3d图
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 生成数据
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))

# 创建3D图形
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z, cmap='viridis')

# 添加标题和标签
ax.set_title('3D图形示例')
ax.set_xlabel('X轴')
ax.set_ylabel('Y轴')
ax.set_zlabel('Z轴')

# 显示图形
plt.show()

10、热力图
import numpy as np
import matplotlib.pyplot as plt

# 生成随机数据
data = np.random.rand(10, 10)

# 创建热力图
plt.imshow(data, cmap='hot', interpolation='nearest')

# 添加颜色条
plt.colorbar()

# 添加标题和标签
plt.title('Heatmap 示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')

# 显示图形
plt.show()

11、饼图
import matplotlib.pyplot as plt

# 饼图数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]  # 所占比例
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']  # 颜色
explode = (0, 0.1, 0, 0)  # 突出显示某一部分

# 创建饼图
plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)

# 添加标题
plt.title('饼图示例')

# 显示图形
plt.show()
  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值