一,简介

Matplotlib是python的绘图库,类似于Matlab软件的绘图功能,只需要几行的代码便能将数据可视化,绘制出如直方图,折线图这类的可视化图形。

二,环境搭建

Matplotlib的功能是对数据可视化的处理,然而对数据的处理则需要Numpy库来完成,因此学习Matplotlib也需要对Numpy库进行安装。对于有理想,有抱负,想学精学透python的同学来说,建议下载Anaconda软件,其可以自动帮你下载,整理,更新你所需要学习使用的各类库。关于Anaconda 的安装教程网上很多,找到对应版本客户端安装即可。

三,数据处理的基础代码(Numpy) 

1,   np.linspace是产生等距数列的代码,一般用于产生x轴。

x = np.linspace(0, 10, 9)
#为生成从0到10的9个等差均匀数列,
# 输出结果为[ 0.    1.25  2.5   3.75  5.    6.25  7.5   8.75 10.  ]

2,   np.random.arange是随机产生呈正态分布的数列,一般用于绘制散点图。

x = np.random.normal(0, 2, 6)
#normal为正态分布,其中0均值,2为标准差,6为所选取个数
#输出结果为[ 0.61827268  0.30955491 -1.18647945  0.71742388 -1.66567337 -1.29008977]

3,  np.arange是产生等距数列代码,与linspace类似,一般用于产生x轴。

x = np.arange(8)
#产生0到7的数组
#输出结果为[0 1 2 3 4 5 6 7]

4,   np.random.uniform是产生一定范围,一定数量的随机数,一般用于y轴。

y = np.random.uniform(2, 7, 6)
#产生2到7的8个随机实数
#输出结果为[6.44352    4.73581194 6.93081477 6.31037136 5.5393072  4.30715143]

四,实例绘图学习

建议将代码拷到自己的电脑上,自己调一调参数来学习,配合着注释更加便于理解和掌握。不要觉得看过一遍就能掌握,也不要觉得难而放弃。

一,曲线图

import matplotlib.pyplot as plt
import numpy as npplt.style.use('_mpl-gallery')
'''为设置背景样式,其中Matplotlib包含多种样式可供选择或替换如
['bmh', 'classic', 'dark_background', 'fast',
'fivethirtyeight', 'ggplot', 'grayscale',]'''# make data
x = np.linspace(0, 10, 100)#为生成从0到10的100个等差均匀数列
y = 4 + 2 * np.sin(2 * x)# plot
fig, ax = plt.subplots()
'''fig-------即figure,画窗
ax-------即axex,画窗中创建的笛卡尔坐标区
原句是下面语句的简写
fig = plt.figure()#首先调用plt.figure()创建了一个画窗对象fig
ax = fig.add_subplot(111)#然后再对fig创建默认的坐标区(一行一列一个坐标区)
'''ax.plot(x, y, linewidth=2.0)#绘制以x为横坐标,y为纵坐标,线条粗细为2的图像ax.set(xlim=(0, 8), xticks=np.arange(1, 8),ylim=(0, 8), yticks=np.arange(1, 8))
#xlim为所绘制曲线的范围,xticks为画窗格中展示的范围
# 若画窗格的范围大于图像的范围则以空白展示plt.show()#展示图像

二,散点图

import matplotlib.pyplot as plt
import numpy as npplt.style.use('_mpl-gallery')# make the data
np.random.seed(3)#使用3号种子中的数
x = 4 + np.random.normal(0, 2, 24)#normal为正态分布,其中0均值,2为标准差,24为所选取个数
y = 4 + np.random.normal(0, 2, len(x))
# size and color:
sizes = np.random.uniform(15, 80, len(x))#uniform为在15到80之间随机生成len(x)个实数
colors = np.random.uniform(15, 80, len(x))# plot
fig, ax = plt.subplots()ax.scatter(x, y, s=sizes, c=colors, vmin=0, vmax=100)
'''x,y为输入数组,s为大小,c为颜色,
vmi,vmax:标量,同norm结合使用,调节颜色的亮度
'''
ax.set(xlim=(0, 8), xticks=np.arange(1, 8),ylim=(0, 8), yticks=np.arange(1, 8))plt.show()

三,柱形图

import matplotlib.pyplot as plt
import numpy as np
plt.style.use('_mpl-gallery')# make data:
np.random.seed(3)
x = 0.5 + np.arange(8)#产生1到7的数组
y = np.random.uniform(2, 7, len(x))#产生2到7的随机实数# plot
fig, ax = plt.subplots()ax.bar(x, y, width=1, edgecolor="white", linewidth=0.7)
#绘制柱状图
ax.set(xlim=(0, 8), xticks=np.arange(1, 8),ylim=(0, 8), yticks=np.arange(1, 8))plt.show()

四,三维散点图

import matplotlib.pyplot as plt
import numpy as npplt.style.use('_mpl-gallery')# Make data
np.random.seed(19680801)
n = 100
rng = np.random.default_rng()# 创建一个种子的生成器,可以为空,空时会随机分配一个种子。
xs = rng.uniform(23, 32, n)#产生12到32的100个随机数
ys = rng.uniform(0, 100, n)
zs = rng.uniform(-50, -25, n)# Plot
fig, ax = plt.subplots(subplot_kw={"projection": "3d"})#设为3D图形
ax.scatter(xs, ys, zs)#绘制三维散点图ax.set(xticklabels=[],yticklabels=[],zticklabels=[])#轴下标注为空plt.show()

五,三维面图

import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as npplt.style.use('_mpl-gallery')# Make data
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
'''arange()函数的用法:一个参数时,参数值为终点,起点取默认值0,步长取默认值1。两个参数时,第一个参数为起点,第二个参数为终点,步长取默认值1。三个参数时,第一个参数为起点,第二个参数为终点,第三个参数为步长。其中步长支持小数
'''
X, Y = np.meshgrid(X, Y)#把x,y数组合并成点的坐标
R = np.sqrt(X**2 + Y**2)#取根
Z = np.sin(R)# Plot the surface
fig, ax = plt.subplots(subplot_kw={"projection": "3d"})#创建3维图形
ax.plot_surface(X, Y, Z, vmin=Z.min() * 2, cmap=cm.Blues)
#绘制三维面图,vmin为映射的最小值,及颜色最小值,camp为曲面块颜色映射ax.set(xticklabels=[],yticklabels=[],zticklabels=[])plt.show()

五,实操训练(绘制扔甩子点数概率的直方图)

首先来分析一下,我们要绘图就要有x和y,x轴的数可以通过np.arrange来产生,y轴的数则需将甩子甩一定数量并进行统计来得出,这里先要有在1到6中一定数量的随机数,然后再进行统计,用的是np.unique中带counts的语句,最好到网上查找一下相关的资料,再自己试着做一下。参考答案如下。

import random
import numpy as np
import matplotlib.pyplot as pltplt.style.use('_mpl-gallery')
rools=[random.randrange(1,7)for i in range(60)]
values, frequence = np.unique(rools,return_counts=True)
'''
return_count为True时:会构建一个递增的唯一值的新列表,
并返回新列表values 中的值在旧列表中的个数 counts
'''
fig,ax=plt.subplots()
ax.bar(values,frequence)
plt.show()

十分钟Matplotlib上手绘图相关推荐

  1. 【Microsoft Azure 的1024种玩法】五十四. 十分钟快速上手创建部署Azure speech服务

    [简介] Azure语音服务是Microsoft提供稳定可靠的云通信服务,其在单个 Azure 订阅中统合了语音转文本.文本转语音以及语音翻译功能,我们可以通过各种方式(语音 CLI.语音 SDK.S ...

  2. python canvas画弧度_只要十分钟,python绘图神器turtle了解一下?

    python的强大在于它有许多的强大的库,turtle就是其中之一. 利用turtle,你可以进行交互式的绘画,作为一个艺术白痴,想要画一幅画可能很困难,但是利用python的turtle库,只需要几 ...

  3. 海龟画图 python太阳花_只要十分钟,Python绘图神器Turtle了解一下?

    python的强大在于它有许多的强大的库,turtle就是其中之一. 利用turtle,你可以进行交互式的绘画,作为一个艺术白痴,想要画一幅画可能很困难,但是利用python的turtle库,只需要几 ...

  4. python turtle绘图如何一次性画完_只要十分钟,python绘图神器turtle了解一下?

    python的强大在于它有许多的强大的库,turtle就是其中之一. 利用turtle,你可以进行交互式的绘画,作为一个艺术白痴,想要画一幅画可能很困难,但是利用python的turtle库,只需要几 ...

  5. python如何设置画布开始位置_只要十分钟,Python绘图神器Turtle了解一下?

    python的强大在于它有许多的强大的库,turtle就是其中之一. 利用turtle,你可以进行交互式的绘画,作为一个艺术白痴,想要画一幅画可能很困难,但是利用python的turtle库,只需要几 ...

  6. 十分钟快速上手结巴分词

    一.特点 1.支持三种分词模式 精确模式,试图将句子最精确的切开: 全模式,把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义: 搜索引擎模式,在精确模式的基础上,对长词再次切分,提 ...

  7. spring boot整合RabbitMQ —— 十分钟急速上手

    安装运行rabbitmq 1.docker安装rabbitmq: docker run -it --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq ...

  8. access 提供程序无法确定object 值_Python | 加一行注释,让你的程序提速10+倍!numba库十分钟上手指南...

    如果你在使用Python进行高性能计算,Numba提供的加速效果可以比肩原生的C/C++程序,只需要在函数上添加一行@jit的装饰.它支持CPU和GPU,是数据科学家必不可少的编程利器. 之前的文章 ...

  9. 十分钟教会女朋友上手阿里云服务器

    十分钟教会女朋友上手阿里云服务器 云服务的概念越来越火,阿里云的品牌也经常出现在圈内圈外人的视野里.作为程序员的我们更是不得不接触的一个概念.最近很多人因为很多原因购买了阿里云服务器却不知道怎么使用, ...

最新文章

  1. TDI Filter 过滤驱动
  2. 弹性碰撞后速度方向_两物体发生弹性碰撞后.相对速度大小不变.方向相反. ,也可以说两物体的速度之和保持不变.即 ....
  3. 【入门基础】conda+jupyter玩转数据科学环境搭建
  4. [转]软件保护之注册算法篇
  5. 通过git和Xcode将代码上传到GitHub
  6. 【渝粤题库】陕西师范大学210004幼儿园美术教育作业(高起专)
  7. python同时发送与接收_Python如何发送与接收大型数组
  8. 5. Adapter Pattern(适配器模式)
  9. pandas读取csv文件数据并对数据求和使用matplotlib画饼图
  10. fiddler抓包HTTPS请求
  11. SQL server 中的dbo、guest
  12. 小米重返世界前五发布红米Note 5A,京东神预言小米复苏
  13. 【大脑】--如何让大脑快速记忆
  14. 怎样用python计算π的值_Python 计算 π 值的简单示例
  15. 让前端的子弹飞-TypeScript
  16. 中富金石老师:中颖电子实现汽车电子芯片生产 开启第二增长曲线
  17. css弹性盒模型详解----flex-wrap
  18. 分子反应动力学有哪些最新发表的毕业论文呢?
  19. e租宝雇佣黑客攻击网贷之家 帮凶被判二年六个月
  20. c语言怎样将程序转化为软件,怎么才能将C程序转化为arduino程序

热门文章

  1. 推荐几个超实用的开源自动化测试框架
  2. Web 1.0、Web 2.0 和 Web 3.0 之间的比较
  3. 2019-CVPR 缺陷/瑕疵检测论文介绍及基于pytorch实现的代码
  4. 喉炎的临床表现都有哪些呢?
  5. 图片加水印app这么多,你更喜欢哪一个?
  6. 单源最短路径Dijkstra算法的思想、详细步骤、代码
  7. Java面试-String、StringButtfer和StringBuilder之间的区别
  8. 【qperf 】CentOS上网络带宽与延迟检测
  9. 【金九银十】终一搏,BAT、TMD名企精选面试题93道(附解析)
  10. Apollo 配置中心