文章目录

  • 1.问题区
  • 2. matplotlib.pyplot简介
    • 1.Pyplot中的基础函数解析
  • 3. 使用Matplotlib画图基本步骤
    • 1.基础方法解析 :
    • 2.基础参数解析:
      • (1)Line Styles线条形状:
      • (2)Markers 折点形状选择:
      • (3)Colors
      • (4)管理多个子图
  • 4. 实战
    • 2.初级数据可视化——画图
      • 简单二维图

本教程只是带领读者体验一下Maplotlib使用的基本方法
下一章我们将进行进阶教程

1.问题区

1.为什么 使用 plt.gcf().set_facecolor(np.ones(3)* 240 / 255) 后 plt.figure 会失效。

2. matplotlib.pyplot简介

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

matplotlib.pyplot 是命令风格函数的集合,使 Matplotlib 像 MATLAB 一样工作。每个 Pyplot 函数对图形做一些修改,例如:创建一个图形,在图形中创建一个绘图区域,在绘图区域中回值一些线条,用标签装饰图形等等。
博主喜欢上来就看见学习结果,所以

看第一个程序:
import matplotlib.pyplot as plt
from matplotlib import pyplot as pltif __name__ == '__main__':
#定义两个列表分别作为X,Y轴x_data=['2011','2013','2015','2017','2019','2021']y_data=['1','2','3','4','5','6']
#第一个列表表示横坐标,第二个列表示纵坐标plt.plot(x_data,y_data)
#调用show()方法plt.show()
结果:

(如果在plot()中只传入一个list,则默认作为Y轴数据)

1.Pyplot中的基础函数解析

matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)[source]
plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], …, **kwargs)

点或线节点的坐标由x,y给出。

可选参数fmt是定义颜色、标记和线型等基本格式的方便方法。这是一种快捷的字符串表示法,在下面的注释部分有描述。

3. 使用Matplotlib画图基本步骤

1.基础方法解析 :

plot中的方法 作用
plt.xlabel(“发布日期”) 设置x轴名称
plt.ylabel(“小说数量”) 设置y轴名称
xticks() 设置x轴刻度
yticks() 设置y轴刻度
plt.title(“80小说网活跃度”) 设置图像标题
plt.legend(loc=“upper left”) 设置折线声明位置
plt.show() 将图像展示出来
plot中的方法 作用
plt.gcf().set_facecolor(np.ones(3)* 240 / 255) 生成画布的大小
plt.grid() 生成网格(可以设置线的格式)
plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
plt.figure参数 作用
num 图像编号或名称,数字为编号 ,字符串为名称
figsize 指定figure的宽和高,单位为英寸figsize=(4,3)
dpi 参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80
facecolor 背景颜色
edgecolor 边框颜色
frameon 是否显示边框
fig=plt.figure(figsize=(4,3),facecolor=‘blue')

2.基础参数解析:

函数中不同参数 作用
plot(x, y) 使用默认线型和颜色打印x和y
plot(x, y, ‘bo’) 使用蓝色圆圈标记绘制x和y
plot(y) 绘图y使用x作为索引数组0…N-1
plot(y, ‘r+’) 同上,但带有红色加号
linewidth=“ ” 设置线宽
linestyle=“ ” 设置线格式
color=“ ”
marker=" h / * / s / p " 用来设置节点样式
ms=1/5/10 设置节点大小
label=" 折线代表的对象 " 设置折线标题

(1)Line Styles线条形状:

character description
‘-’ solid line style 实线样式
‘–’ dashed line style 虚线样式
‘-.’ dash-dot line style 点划线样式
‘:’ dotted line style 虚线样式

(2)Markers 折点形状选择:

character description
‘.’ point marker 点标记
‘,’ pixel marker 像素标记
‘o’ circle marker o形圈标记
‘v’ triangle_down marker “v”形三角向下标记
‘^’ triangle_up marker “^”三角形向上标记
‘<’ triangle_left marker
‘>’ triangle_right marker '>'三角形\u右标记
‘1’ tri_down marker “1”三角向下标记
‘2’ tri_up marker “2”三角标记
‘3’ tri_left marker “3”左标记
‘4’ tri_right marker “4”tri\u右标记
‘s’ square marker “s”方形标记
‘p’ pentagon marker “p”五边形标记
‘*’ star marker “*”星形标记
‘h’ hexagon1 marker “h”六边形标记
‘H’ hexagon2 marker “H”六边形2标记
‘+’ plus marker “+”加号
‘x’ x marker “x”x标记
‘D’ diamond marker “D”菱形标记
‘d’ thin_diamond marker “d”细钻石标记
‘_’ hline marker ''线标记

(3)Colors

character description
‘b’ blue
‘g’ green
‘r’ red
‘c’ cyan 青色
‘m’ magenta 洋红色
‘y’ yellow
‘k’ black
‘w’ white
Example format strings:
字母 作用
‘b’ blue markers with default shape 带默认形状的蓝色标记
‘or’ red circles 红圈
‘-g’ green solid line 绿色实线
‘–’ dashed line with default color 带默认颜色的虚线
‘^k:’ black triangle_up markers connected by a dotted line 黑色三角形#用虚线连接的标记

(4)管理多个子图

在一个数据图上包含多个子图

调用subplot()函数可以创建多个子图,然后程序就可以在子图上进行绘制
subplot(nrows,ncols,index,**kwargs)函数中的nrows参数指定将数据图域分为多少行;nclos参数指定将数据图域分为多少列;index参数指定获得第几个区域。

import matplotlib.pyplot as plt
import numpy as np
import math
plt.figure(facecolor='green')#生成sin和cos三角函数图像
#定义从-pi到pi之间的数据平均取640个数据
x1_data=np.linspace(-np.pi,np.pi,64,endpoint=True)
x=[-5,-4,-3,-2,-1,0,1,2,3,4,5]
plt.subplot(2,2,1)
#将figure分为两行两列将该图形放入第一个网格中
plt.plot(x1_data,np.sin(x1_data),label='sin')
plt.grid(c='g',linestyle='-.')  # 生成网格
plt.plot(x1_data,np.cos(x1_data),label='cos')plt.subplot(2,2,2)
plt.plot(x1_data,np.cos(x1_data),label='cos')
plt.legend('upperleft')
#生成网格便于观察
plt.grid(c='r',linestyle=':')  # 生成网格plt.subplot(2,2,3)
plt.plot(x1_data,np.tan(x1_data))
plt.plot(x,x)plt.plot(x1_data,np.cos(x1_data),label='cos')
plt.grid(c='m',linestyle='--')  # 生成网格plt.subplot(2,2,4)
plt.grid(c='m',linestyle='--')  # 生成网格
plt.plot(x,x)plt.show()
结果

加入plt.gcf().set_facecolor(np.ones(3)* 240 / 255)   # 生成画布的大小之后

经过我实际测试我发现这个方法加入后 plt.figure 函数失效了。

4. 实战

2.初级数据可视化——画图

解决中文乱码问题

# 处理乱码
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 用黑体显示中文

简单二维图

import matplotlib.pyplot as plt
from matplotlib import pyplot as pltif __name__ == '__main__':x_data=['2011','2013','2015','2017','2019','2021']y_data=['1','3','9','27','81','243']plt.plot(x_data, y_data, 'go-', label='line 4', linewidth=1)plt.show()
linewidth=1

![在这里插入图片描述](https://img-blog.csdnimg.cn/2021032321193597.png ?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MzI3MjI0Nw==,size_16,color_FFFFFF,t_70)

import matplotlib.pyplot as plt
from matplotlib import pyplot as pltif __name__ == '__main__':x_data=['2011','2013','2015','2017','2019','2021']y_data=['1','3','9','27','81','243']plt.plot(x_data, y_data, 'm--h',label='line 1', linewidth=1)plt.show()
plt.plot()

注意这里参数“go-”改为了“m–h”,“m–h其实是“m”,“–”,“h”组合而成,这验证了格式参数可以合并(具体参数上面的表格已经给出了一部分)

终极案例:
# -*- coding:utf-8 -*-
import matplotlib
import matplotlib.pyplot as plt
# 处理乱码
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 用黑体显示中文
x = [1, 2, 3, 4]
y = [10, 50, 20, 100]
# "r" 表示红色,ms用来设置*的大小
plt.plot(x, y, "r", marker='*', ms=10, label="小说1——我的兄弟之顺溜之一战")
# plt.plot([1, 2, 3, 4], [20, 30, 80, 40], label="b")
#label : 给所绘制的曲线一个名字,此名字在图示/图例(legend)中显示
plt.plot([1, 2, 3, 4], [20, 30, 80, 40], marker="h",ms=10,label="小说2——我的兄弟之顺溜之二战")
plt.plot([1, 2, 3, 4], [30, 10, 60, 200], marker="p",ms=10,label="小说2——我的兄弟之顺溜之三战")
plt.plot([1, 2, 3, 4], [0, 80, 50, 150], marker="p",ms=10,label="小说2——我的兄弟之顺溜之四战")
plt.xticks(rotation=20)
plt.xlabel("发布日期")
plt.ylabel("小说数量")
plt.title("80小说网活跃度")
# upper left 将图例a显示到左上角
plt.legend(loc="upper left")
# 在折线图上显示具体数值, ha参数控制水平对齐方式, va控制垂直对齐方式
for x1, y1 in zip(x, y):plt.text(x1, y1 + 1, str(y1), ha='center', va='bottom', fontsize=20, rotation=0)
plt.savefig("a.jpg")
plt.show()

import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
plt.xlabel('时间')
plt.ylabel('数量')
x=[1,3,5,7]
x1=[2,4,6,8]
y=[12,32,54,3]
y1=[23,56,23,67]
plt.title("柱状图练习")
plt.bar(x,y,color='r',label="A")
plt.bar(x1,y1,color='g',label='B')
plt.legend('uppper.right')
plt.show()

下一章将讲解3D画图和画函数图像

大数据分析——Matplotlib进阶教程

大数据分析——Matplotlib入门教程相关推荐

  1. 大数据分析——Matplotlib进阶教程

    文章目录 问题区设置坐标轴 1.matplotlib.pyplot总览 (1)总函数 (2)常用函数 常用函数解析 对于figure和axes的理解 2.实战 (1)三维图 3D画图常用函数 np.m ...

  2. Matplotlib 入门教程

    Matplotlib 入门教程 来源:Introduction to Matplotlib and basic line 译者:飞龙 协议:CC BY-NC-SA 4.0 在线阅读 PDF格式 EPU ...

  3. matplotlib入门教程笔记

    Matplotlib 入门教程 来源:Introduction to Matplotlib and basic line 译者:飞龙 协议:CC BY-NC-SA 4.0 在线阅读 PDF格式 EPU ...

  4. 大数据分析工程师入门15-数据收集

    导语 上一篇文章我们简单介绍了下大数据的基础架构的模块组成和功能以及各模块间是如何协作的.本文开始,我们将对其中比较重要的几个模块来做一个详细的介绍,希望对大家的面试和工作有所帮助. 1.为什么要讲数 ...

  5. 大数据分析工程师入门--1.Java基础

    今天,我们开始<大数据分析师入门课程>系列的第一堂课,主讲内容是--大数据分析师必备的java基础. 如果你正一脸懵,课?啥课?数据分析?啥意思? 那么,亲爱的小伙伴们,建议大家可以先去看 ...

  6. 2020年整理的大数据基础入门教程总结和学习路线

    所谓大数据(Big Data),就是需要处理的数据量非常巨大,已经达到了 TB.PB 甚至 EB.ZB 级别,需要成千上万块硬盘才能存储.传统的技术手段在大数据面前不堪一击,只能探索一套新的解决方案. ...

  7. 大数据分析工程师入门8--Spark基础

    本文为<大数据分析师入门课程>系列的第8篇,主要讲解大数据分析师必须了解的Spark基础知识,前7篇分别是JAVA基础.SCALA基础.SQL基础.SQL进阶.HIVE基础.HIVE进阶. ...

  8. Titanic:Machine Learning from Disaster 人工智能,大数据分析常用入门kaggle项目

    索引 0.了解Kaggle: 1.观察大局: 2.获得数据: 3.从数据探索和可视化中获得洞见: 4.机器学习算法的数据准备: 5.选择和训练模型: 6.微调模型: 0.了解Kaggle: Kaggl ...

  9. 理想国matplotlib入门教程

    简介 个人简介 姓名:张大鹏 性别:男 生日:1993年8月29日 经验:工作经验8年,IT技术培训经验3年 爱好:学习 座右铭:不积跬步无以至千里,不积小流无以成江海. 优点:自律,稳重,热爱学习 ...

最新文章

  1. Python 工程管理及 virtualenv 的迁移
  2. vbsedit无法创建空文档_vue文档里你没捡起来的宝藏
  3. TCP校验和的设计与实现
  4. 【成功智慧】005.最重要的是明确奋斗的目标
  5. 不断注册账号能挤满对方服务器吗,为什么不能注册啊
  6. 北京内推 | 地平线视觉算法团队招聘视觉算法实习生
  7. SAP Spartacus 找不到登录入口的问题 - 如何使用 Schematics 安装 user package
  8. 踏上Silverlight的征程 体验Silverlight之美
  9. Mysql学习总结(40)——MySql之Select用法汇总
  10. 赛锐信息:SuccessFactors激活高效能人员战略
  11. Oracle 与 MySQL 的区别
  12. AE “每用户订阅上的所有人SID 不存在”
  13. Emacs之删除整列操作
  14. ftl if else判断_为什么都不用 switch 而使用 if/ else 来做条件判断?
  15. python爬网易新闻_爬虫入门:如何用python爬取网易新闻?
  16. 浅谈未来计算机操作系统的发展方向,浅谈未来计算机操作系统的发展方向
  17. java的jar是什么文件_jar是什么意思,jar文件怎么打开?
  18. badboy设置中文_badboy中文手册
  19. linux新建数字名字用户,linux 用户、用户组不能是全数字
  20. php belongsto,php-Laravel:belongsTo()关系假定一对多关系,而不是一对一关系

热门文章

  1. 我在哪?要到哪里去?怎么去?
  2. 小米妙享更新的安装包下载到了电脑的哪里
  3. just for save
  4. 头条号发视频为什么没有收益,在头条号发搞笑视频收益大吗
  5. java输出执行开始时间,结束时间和运行时间
  6. java 导出txt_【Java】导入导出TXT文件
  7. “学习金字塔”的真与假
  8. 原来证件照还可以这样拍?美炸了!再也不怕证件照丑到家了!
  9. 游戏服务器没有响应怎么回事,求助!!!为什么我进不了游戏!!!
  10. xxl-job任务调度平台