python 之 matplotlib

本文介绍了Python的Matplotlib库,重点讲解如何利用NumPy配合Matplotlib进行绘图,包括折线图、散点图、条形图、直方图和饼状图的绘制方法。还分享了解决坐标轴标签挤压问题的四种策略,如关闭标签、旋转刻度、调整图片尺寸和缩小文字大小。
摘要由CSDN通过智能技术生成

1.NumPy Matplotlib

Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。

1.1 下载所需要的包

pip3 install matplotlib

1.2 pyplot介绍

Matplotlib 软件包中子包,提供了一个类似MATLAB的绘图框架。支持 Python 语言。

2.画图

2.1 一般包含什么内容

在这里插入图片描述

2.2 语法(没啥用)

在这里插入图片描述
在这里插入图片描述

2.3 画图流程解释

整个流程相当于一步一步的添加东西,比如先添加画布、然后是坐标轴、然后是表示数据的图、然后是题目、然后是其他等等,因此保存图像的语句要在所有东西都添加好后,然后最后都添加完毕也保存了,再show

2.4 以折线图为例讲解 流程、基本语法(看这个就够了)

# 1.首先导包
from matplotlib import pyplot  
# 2. 准备数据:坐标轴的刻度数据以及构成图的数据
# 2.1 首先准备坐标轴的刻度数据
labelX=[1,2,3,4,5]
labelY=[1,2,3,4,5] 
# 2.2 再准备构成图的数据
# 第一个折线图的数据
x1=[1,2,3]
y1=[1,2,3]
# 第二个折线图的数据
x2=[1,1.5,4]
y2=[1,2,3]
# 3.然后准备画布,决定图的宽、高、清晰度(20是宽,8是高,dpi是清晰度)
pyplot.figure(figsize=(20,8),dpi=80)
# 4.将构成图的数据绑定到图上,先是横坐标,然后是纵坐标,label是标记,标价显示还需要legend()
# 画第一个折线图
pyplot.plot(x1, y1,label="第一个折线图")
# 画第二个折线图,自动改变颜色!当然也可以指定两个折线图分别为什么颜色
pyplot.plot(x2, y2,label="第二个折线图")
# 显示线的标记
# Python matplotlib画图时图例说明(legend)放到图像外侧详解:https://www.jb51.net/article/186659.htm
pyplot.legend()
# 5.将坐标轴刻度绑定上去,然后再标记x、y分别代表了什么;刻度和标记都为Times New Roman,且字体大小为16
# 5.1 绑定刻度,刻度数据可以通过一一对应显示字符串
pyplot.xticks(labelX, size = 16, weight=1000)
pyplot.yticks(labelY, size = 16)
# 5.2 标记x、y代表什么
pyplot.xlabel("代表x轴",fontdict={
   'weight' : 1000,'size' : 16})
pyplot.ylabel("代表y轴",fontdict={
   'weight' : 'normal','size' : 16})
# 6.整个图的标题
pyplot.title("图的标题")
# 7.背景换成网格,以及添加水印
# 7.1 网格:ls=":"-->网格样式(虚线),color="gray"-->网格颜色,alpha=0.5-->网格透明度
pyplot.grid(ls=":",color="gray",alpha=0.5)
# 7.2 添加水印
pyplot.text(x=1,               # 水印开头左下角对应的X点
 		 y=2,               # 水印开头左下角对应的Y点
         s="Matplotlib",    # 水印文本
         fontsize=50,       # 水印大小
         color="gray",      # 水印颜色
         alpha=0.5)         # 水印是通过透明度控制的
# 8.保存图
pyplot.savefig("./save.png")
# 9.显示图
pyplot.show()

结果:
在这里插入图片描述

3. 各图示例

3.1折线图 .plot()

3.1.1 设置x、y轴坐标为字符串+坐标轴添加名字+图的名字

from matplotlib import pyplot
import random

# 刻画一个10点到12点每一分钟温度20到35变化的折线图
x = range(0, 120)
y = [random.randint(20, 35) for i in range(
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值