一、安装matplotlib

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

二、matplotlib图像简介

matplotlib的图像分为三层,容器层、辅助显示层和图像层。

  1. 容器层主要由Canvas、Figure、Axes组成。
Canvas位于图像的最底层,充当画布的作用。Figure位于Canvas之上,指画布上的一整张图像。Axes位于Figure之上,指Figure中的单个图表,一个Figure中可以有一个或多个Axes,即一张图像中可以有一个或多个图表。
  1. 辅助显示层是单个图表(Axes)中用来提供辅助信息的层。
辅助显示层主要包括Axes外观(facecolor)、边框线(spines)、坐标轴(axis)、坐标轴名称(axis label)、坐标轴刻度(tick)、坐标轴刻度标签(tick  label)、网格线(grid)、图例(legend)、标题(title)等内容。辅助层可使图像显示更加直观,提高可读性。
  1. 图像层指Axes内通过plot、scatter、bar、histogram、pie等函数绘制出的图形。

三、matplotlib绘制折线图

# coding=utf-8
import matplotlib.pyplot as pltplt.figure(figsize=(20, 10), dpi=100)
game = ['1-G1', '1-G2', '1-G3', '1-G4', '1-G5', '2-G1', '2-G2', '2-G3', '2-G4', '2-G5', '3-G1', '3-G2', '3-G3','3-G4', '3-G5', '总决赛-G1', '总决赛-G2', '总决赛-G3', '总决赛-G4', '总决赛-G5', '总决赛-G6']
scores = [23, 10, 38, 30, 36, 20, 28, 36, 16, 29, 15, 26, 30, 26, 38, 34, 33, 25, 28, 40, 28]
plt.plot(game, scores)
plt.show()

运行结果

figure(): 创建图像并设置图像的大小等属性,返回一张图像,可以传入很多参数,常用参数有两个。figsize参数传入一个元组(width, height),设置图像的大小。dpi传入一个整数值,设置图像的清晰度。

plot(): matplotlib中绘制折线图的函数。可以传入很多参数,一般传入两个列表,分别是折线图中的x值和y值。上面的例子中用了NBA2020年季后赛James的得分数据。

show(): 展示图像。

四、matplotlib优化折线图

import matplotlib.pyplot as pltplt.figure(figsize=(20, 10), dpi=100)
game = ['1-G1', '1-G2', '1-G3', '1-G4', '1-G5', '2-G1', '2-G2', '2-G3', '2-G4', '2-G5', '3-G1', '3-G2', '3-G3','3-G4', '3-G5', '总决赛-G1', '总决赛-G2', '总决赛-G3', '总决赛-G4', '总决赛-G5', '总决赛-G6']
scores = [23, 10, 38, 30, 36, 20, 28, 36, 16, 29, 15, 26, 30, 26, 38, 34, 33, 25, 28, 40, 28]
plt.plot(game, scores, c='red')
plt.scatter(game, scores, c='red')
y_ticks = range(50)
plt.yticks(y_ticks[::5])
plt.grid(True, linestyle='--', alpha=0.5)
plt.xlabel("赛程", fontdict={'size': 16})
plt.ylabel("得分", fontdict={'size': 16})
plt.title("NBA2020季后赛詹姆斯得分", fontdict={'size': 20})
plt.show()

运行结果

在使用plot()函数绘图时,可以通过c='颜色’来设置折线图的颜色。

scatter(): 绘制散点图。折线图是用直线连接相邻的两个点形成的,但是连成折线后点的显示不明显。scatter可以单独对点进行设置,展示得更明显。

yticks(): 用于设置y轴坐标的范围,传入一个可迭代对象(如range()函数)。最开始绘制的折线图中,图像的y轴坐标范围是数据的范围,坐标原点不是0,使用yticks函数可以设置想要的坐标范围。同理xticks可以用于设置x轴坐标的范围。

grid(): 用于设置图表中的网格线,使用linestyle参数设置网格线的样式,常用的样式有下表中的几种,plot()函数中也可以用linestyle参数设置折线图的样式。使用alpha参数设置网格线的透明度。

样式 字符
实线 -
虚线 - -
点划线 -.
点虚线 :

xlabel(): 用于设置x轴的标签,说明x轴坐标的含义,第一个参数传入需要设置的标签值,后面可以通过其他参数设置显示的效果,如字体大小等。ylabel同理。

title(): 用于设置折线图的标题,说明这张折线图展示的数据。用法同xlabel。

五、matplotlib绘制多条折线图

import matplotlib.pyplot as pltplt.figure(figsize=(20, 10), dpi=100)
game = ['1-G1', '1-G2', '1-G3', '1-G4', '1-G5', '2-G1', '2-G2', '2-G3', '2-G4', '2-G5', '3-G1', '3-G2', '3-G3','3-G4', '3-G5', '总决赛-G1', '总决赛-G2', '总决赛-G3', '总决赛-G4', '总决赛-G5', '总决赛-G6']
scores = [23, 10, 38, 30, 36, 20, 28, 36, 16, 29, 15, 26, 30, 26, 38, 34, 33, 25, 28, 40, 28]
rebounds = [17, 6, 12, 6, 10, 8, 11, 7, 15, 11, 6, 11, 10, 9, 16, 13, 9, 10, 12, 13, 14]
assists = [16, 7, 8, 10, 10, 7, 9, 5, 9, 7, 12, 4, 11, 8, 10, 9, 9, 8, 8, 7, 10]
plt.plot(game, scores, c='red', label="得分")
plt.plot(game, rebounds, c='green', linestyle='--', label="篮板")
plt.plot(game, assists, c='blue', linestyle='-.', label="助攻")
plt.scatter(game, scores, c='red')
plt.scatter(game, rebounds, c='green')
plt.scatter(game, assists, c='blue')
plt.legend(loc='best')
plt.yticks(range(0, 50, 5))
plt.grid(True, linestyle='--', alpha=0.5)
plt.xlabel("赛程", fontdict={'size': 16})
plt.ylabel("数据", fontdict={'size': 16})
plt.title("NBA2020季后赛詹姆斯数据", fontdict={'size': 20})
plt.show()

运行结果

要在同一张图像中展示多条折线图,多次调用plot()函数就行。每条折线图的颜色、样式等可以分别设置,以便更好地进行区分。

legend(): 展示图例,通过loc参数传入图例在图表中展示的位置,可以传入的值有‘best’, ‘upper right’, ‘upper left’, ‘lower left’, ‘lower right’, ‘right’, ‘center left’, ‘center right’, ‘lower center’, ‘upper center’, ‘center’,这十一个值分别对应数字0~10,传值时也可以传对应的数字,后面十个值都指定了图例的位置,‘best’表示自适应,会自动根据图像的分布在后面的十个值中选择一个,大部分为右上角’upper right’。

为了使用图例,在每次调用plot()函数绘制折线图时,需要使用label参数给折线图添加标签,在图例中展示。有多条折线图时,图例可以用于区分每条折线图表示的含义,如将James的得分和篮板、助攻展示在同一张图中。

六、matplotlib绘制多张折线图

import matplotlib.pyplot as pltfig, axs = plt.subplots(nrows=1, ncols=3, figsize=(20, 6), dpi=100)
game = ['1-G1', '1-G2', '1-G3', '1-G4', '1-G5', '2-G1', '2-G2', '2-G3', '2-G4', '2-G5', '3-G1', '3-G2', '3-G3','3-G4', '3-G5', '总决赛-G1', '总决赛-G2', '总决赛-G3', '总决赛-G4', '总决赛-G5', '总决赛-G6']
scores = [23, 10, 38, 30, 36, 20, 28, 36, 16, 29, 15, 26, 30, 26, 38, 34, 33, 25, 28, 40, 28]
rebounds = [17, 6, 12, 6, 10, 8, 11, 7, 15, 11, 6, 11, 10, 9, 16, 13, 9, 10, 12, 13, 14]
assists = [16, 7, 8, 10, 10, 7, 9, 5, 9, 7, 12, 4, 11, 8, 10, 9, 9, 8, 8, 7, 10]
y_data = [scores, rebounds, assists]
colors = ['red', 'green', 'blue']
line_style = ['-', '--', '-.']
y_labels = ["得分", "篮板", "助攻"]
for i in range(3):axs[i].plot(game, y_data[i], c=colors[i], label=y_labels[i], linestyle=line_style[i])axs[i].scatter(game, y_data[i], c=colors[i])axs[i].legend(loc='best')axs[i].set_yticks(range(0, 50, 5))axs[i].grid(True, linestyle='--', alpha=0.5)axs[i].set_xlabel("赛程", fontdict={'size': 16})axs[i].set_ylabel(y_labels[i], fontdict={'size': 16}, rotation=0)axs[i].set_title("NBA2020季后赛詹姆斯{}".format(y_labels[i]), fontdict={'size': 20})
fig.autofmt_xdate()
plt.show()

运行结果

subplots(): 用于在同一张图像中绘制多张图表,通过nrows, ncols两个参数设置图表的张数和排列方式,figsize和dpi同figure()函数。subplots()函数返回两个参数,一个是图像对象fig,一个是可迭代的图表数组axs(类型为numpy中的数组对象)。

每一张图表中的标签、标题、样式、图例等都需要单独设置,为了避免代码过于冗余,可以使用循环。绘制每一张图表时,从axs中取出每一张图表,再调用plot()函数绘图。在设置坐标轴、标签、标题时,使用’set_'开头的方法进行设置,如设置x轴标签用set_xlabel()。

autofmt_xdate(): x轴坐标值自适应倾斜。因为一张图像中有多张图表,x坐标值靠得很近,可能会因重叠造成展示效果差,使用fig对象的autofmt_xdate()方法可以设置自适应倾斜。

以上就是matplotlib实现折线图的简单介绍,更多设置可以参考官网https://matplotlib.org/tutorials/index.html,并多作尝试。

七、设置数字标签

# coding=utf-8
import matplotlib.pyplot as pltplt.figure(figsize=(20, 10), dpi=100)
game = ['1-G1', '1-G2', '1-G3', '1-G4', '1-G5', '2-G1', '2-G2', '2-G3', '2-G4', '2-G5', '3-G1', '3-G2', '3-G3','3-G4', '3-G5', '总决赛-G1', '总决赛-G2', '总决赛-G3', '总决赛-G4', '总决赛-G5', '总决赛-G6']
scores = [23, 10, 38, 30, 36, 20, 28, 36, 16, 29, 15, 26, 30, 26, 38, 34, 33, 25, 28, 40, 28]
plt.plot(game, scores)
# 设置数字标签
for a, b in zip(game, scores):plt.text(a, b, b, ha='center', va='bottom', fontsize=20)
plt.show()

16, 29, 15, 26, 30, 26, 38, 34, 33, 25, 28, 40, 28]
plt.plot(game, scores)

设置数字标签

# coding=utf-8
import matplotlib.pyplot as pltplt.figure(figsize=(20, 10), dpi=100)
game = ['1-G1', '1-G2', '1-G3', '1-G4', '1-G5', '2-G1', '2-G2', '2-G3', '2-G4', '2-G5', '3-G1', '3-G2', '3-G3','3-G4', '3-G5', '总决赛-G1', '总决赛-G2', '总决赛-G3', '总决赛-G4', '总决赛-G5', '总决赛-G6']
scores = [23, 10, 38, 30, 36, 20, 28, 36, 16, 29, 15, 26, 30, 26, 38, 34, 33, 25, 28, 40, 28]
plt.plot(game, scores)
# 设置数字标签
for a, b in zip(game, scores):plt.text(a, b, b, ha='center', va='bottom', fontsize=20)
plt.show()

Python绘制折线图相关推荐

  1. python简单代码画曲线图教程-Python绘制折线图和散点图的详细方法介绍(代码示例)...

    本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...

  2. python画折线图代码-Python绘制折线图和散点图的详细方法介绍(代码示例)

    本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...

  3. python 绘制折线图-怎样用python绘制折线图

    今天教大家用python绘制一些线性图案,需要的朋友可以借鉴参考一下. 画最简单的直线图 代码如下:import numpy as np import matplotlib.pyplot as plt ...

  4. python绘制折线图先对数据进行处理_python气象数据分析并绘制折线图-女性时尚流行美容健康娱乐mv-ida网...

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 excel 2010巧妙处理 折 ...

  5. 用Python绘制折线图(上)

    各个事业部需要在工作表中生成利润走势图,来分析利润走向. 但是一共有52个部门,也就是需要给52个Excel表格绘图,同样的绘图操作要重复52遍,如果一个个操作实在浪费时间. 还有绘制什么样式的图也需 ...

  6. 【Python】用Python绘制折线图(插值法平滑曲线)

    目录 利用绘制图表:​​​​​​matplotlib官网 1. 小试牛刀--柱状图 1.1 matplotlib库默认英文字体 2. 折线图绘制 2.1 读取exal方法 2.1.1  数据处理常用库 ...

  7. python绘制折线图保存_python如何画折线图

    python画折线图利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图:# -*- coding: UTF-8 -*- import numpy as ...

  8. Python绘制折线图、散点图

    Python绘图需要下载安装matplotlib模块,它是一个数学绘图库,我们将使用它来制作简单的图表,如折线图和散点图.关于matplotlib模块的下载安装预配置将在后面具体介绍. (一)绘制折线 ...

  9. python 绘制折线图 显示纵坐标值_python怎样用matplotlib画折线图对比图

    在论文写作中经常会出现多个算法效果比较的折线对比图,本文就介绍一下,怎样通过python中的matplotlib库来画出折线对比图. 工具/原料 python matploblib 方法/步骤 1 M ...

  10. python绘制折线图保存_Python利用matplotlib绘制折线图的新手教程

    前言 matplotlib是Python中的一个第三方库.主要用于开发2D图表,以渐进式.交互式的方式实现数据可视化,可以更直观的呈现数据,使数据更具说服力. 一.安装matplotlib pip i ...

最新文章

  1. 2021年大数据常用语言Scala(一):Scala简介
  2. Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
  3. 庖丁解牛-图解MySQL 8.0优化器查询解析篇
  4. Oracle就业课第六课之游标和触发器
  5. java 交替_Java 8:使用交替接口公开的类型安全地图生成器
  6. stack overflow--技术问答网站
  7. 更新一波,微信第三方开发平台授权流程
  8. python 调用dll 参数_python调用dll
  9. 给 layui upload 带每个文件的进度条, .net 后台代码
  10. C# 使用X509Certificate2获取数字证书信息对接联通沃支付
  11. 华硕笔记本官网驱动如何下载
  12. 数据技术大融合,HSTAP数据库有多少想象空间?
  13. Excel 行列转换的最简方法 1
  14. 利普希茨连续(Lipschitz continuous)及其应用
  15. 牛客网暑期ACM多校训练营(第二场)G.transform (二分+思维)
  16. word插入图片后只显示一部分,怎么解决?
  17. 【单片机】4.3 中断允许与中断优先级的控制
  18. 阿里程序员绩效被判不及格,却被谷歌录取:此生再也不回阿里
  19. 【BZOJ1926】【SDOI2010】粟粟的书架(DP,主席树,二分)
  20. python fft 归一化_基本的FFT归一化问题

热门文章

  1. 经典再现,看到就是赚到。尚硅谷雷神 - SpringBoot 2.x 学习笔记 - 核心功能篇
  2. lang3之StringUtils
  3. 计算机的英语怎样写,电脑的英文作文怎么写好呢
  4. 周末加班,中午吃饭时看到了马总的一条新闻
  5. Google云存储服务GDrive再度浮出水面
  6. java 网络执行_Java网络编程之TCP通信
  7. 取消php网站验证码,如何取消网站后台的登陆验证码
  8. The RK3066/RK30SDK Android 4.2 audio codec has a bug!
  9. linux 域名判断 跳转,Nginx判断不同的域名指向不同的root路径实例
  10. 消除keil编译警告 #1296-D:extended constant initialiser used