Matplotlib的应用

目录

    • 前言:图表类型选择指南
    • 一、导入库
    • 二、对plt进行配置
      • [2.1 让图表正常显示中文](#2.1 让图表正常显示中文)
      • [2.2 使得绘制的图都为矢量图(全局有效)](#2.2 使得绘制的图都为矢量图(全局有效))
    • 三、常见图的绘制
        • [3.1 折线图](#3.1 折线图)
          • [3.1.1 图中一个坐标系](#3.1.1 图中一个坐标系)
          • [3.1.2 图中两个坐标系](#3.1.2 图中两个坐标系)
      • [3.2 散点图](#3.2 散点图)
      • [3.3 柱状图](#3.3 柱状图)
      • [3.4 其余图](#3.4 其余图)

前言:图表类型选择指南

一、导入库

python 复制代码
import matplotlib.pyplot as plt

二、对plt进行配置

2.1 让图表正常显示中文

python 复制代码
plt.rcParams['font.sans-serif'].insert(0, 'SimHei')
plt.rcParams['axes.unicode_minus'] = False

2.2 使得绘制的图都为矢量图(全局有效)

绘图时生成矢量图(SVG/PDF),矢量图放大后还是清晰的。矢量图跟图片的dpi无关,dpi=60和dpi=300的矢量图是一个清晰度。

python 复制代码
%config InlineBackend.figure.format='svg'

三、常见图的绘制

3.1 折线图
3.1.1 图中一个坐标系
python 复制代码
x = np.linspace(-2 * np.pi, 2 * np.pi, 120) # 从-2pai到2pai生成等间距的120个点
y1, y2 = np.sin(x), np.cos(x) # 得到这120个点对应的sin值和cos值
# 创建画布,figsize参数指定画布的尺寸,dpi设置图片的分辨率
plt.figure(figsize=(8, 4), dpi=120)
# 绘制折线图,用plot函数
plt.plot(x, y1, linewidth=2, marker='*', color='red') # linewidth参数代表线条的粗细,值越大线越粗
plt.plot(x, y2, linewidth=2, marker='^', color='blue')
# 显示绘图
plt.show()
3.1.2 图中两个坐标系
python 复制代码
# 如果要使用两个坐标系分别绘制正弦和余弦,使用subplot函数
plt.figure(figsize=(8, 4), dpi=120)
# 创建第一个坐标系
plt.subplot(2, 1, 1) # 将画布分成2行1列,index=1这是第一个子图
# 绘制第一个图
plt.plot(x, y1, linewidth=2, marker='*', color='red')
# 创建第二个坐标系
plt.subplot(2, 1, 2) # index=2这是第二个子图
# 绘制第二个图
plt.plot(x, y2, linewidth=2, marker='^', color='blue')
# 显示绘图
plt.show()

3.2 散点图

python 复制代码
# 散点图---了解两个变量的关系(了解三个变量的关系就用气泡图)
x = np.array([5550, 7500, 10500, 15000, 20000, 25000, 30000, 40000])
y = np.array([800, 1800, 1250, 2000, 1800, 2100, 2500, 3500])

plt.figure(figsize=(6, 4), dpi=120)
# 绘制散点图用scatter函数
plt.scatter(x, y)
plt.show()

3.3 柱状图

python 复制代码
x = np.arange(4)
y1 = np.random.randint(20, 50, 4)
y2 = np.random.randint(10, 60, 4)

plt.figure(figsize=(6, 4), dpi=120)
# 调用bar函数绘制柱状图
# x-0.1和x+0.1是为了让两个柱子错开,第一个柱子从0.9画到1.1,第二个柱子从1.1画到1.3
# label参数为柱子设置标签
plt.bar(x - 0.1, y1, width=0.2, label='销售A组') 
plt.bar(x + 0.1, y2, width=0.2, label='销售B组')
# 设置横轴的刻度
plt.xticks(x, labels=['Q1', 'Q2', 'Q3', 'Q4'])
# 设置图例
plt.legend()
plt.show()

# 保存图表
# 如果希望既显示图表又要保存图表,应该先保存再显示
plt.savefig('chart.png')
plt.show() # 每次show后都会清空当前图像

3.4 其余图

可参考链接:

  1. https://github.com/jackfrued/Python-100-Days/blob/master/Day66-80/78.数据可视化-1.md
  2. https://github.com/jackfrued/Python-100-Days/blob/master/Day66-80/79.数据可视化-2.md
相关推荐
半路_出家ren2 天前
python基础数据分析与可视化
python·数据分析·numpy·pandas·办公自动化·matplotlib·jupyternotebook
TwoAI13 天前
Matplotlib:绘制你的第一张折线图与散点图
python·matplotlib
eqwaak013 天前
Matplotlib 动画显示进阶:交互式控制、3D 动画与未来趋势
python·tcp/ip·3d·语言模型·matplotlib
烟锁池塘柳015 天前
【已解决,亲测有效】解决使用Python Matplotlib库绘制图表中出现中文乱码(中文显示为框)的问题的方法
开发语言·python·matplotlib
浪浪山齐天大圣16 天前
python数据可视化之Matplotlib(8)-Matplotlib样式系统深度解析:从入门到企业级应用
python·matplotlib·数据可视化
伊织code16 天前
Matplotlib 2 -绘图、统计、网格、3D
3d·matplotlib·绘图
胡耀超16 天前
7、Matplotlib、Seaborn、Plotly数据可视化与探索性分析(探索性数据分析(EDA)方法论)
python·信息可视化·plotly·数据挖掘·数据分析·matplotlib·seaborn
摩羯座-1856903059417 天前
Python数据可视化基础:使用Matplotlib绘制图表
大数据·python·信息可视化·matplotlib
eqwaak018 天前
Matplotlib 动态显示详解:技术深度与创新思考
网络·python·网络协议·tcp/ip·语言模型·matplotlib
深兰科技1 个月前
柳州市委常委、统战部部长,副市长潘展东率队首访深兰科技集团新总部,共探 AI 赋能制造大市与东盟合作新局
人工智能·beautifulsoup·numpy·pyqt·matplotlib·pygame·深兰科技