python matplotlib画图实例代码分享
作者:阿里贝尔 发布时间:2022-06-12 23:12:21
标签:python,matplotlib
python的matplotlib包支持我们画图,有点非常多,现学习如下。
首先要导入包,在以后的示例中默认已经导入这两个包
import matplotlib.pyplot as plt
import numpy as np
然后画一个最基本的图
t = np.arange(0.0, 2.0, 0.01)#x轴上的点,0到2之间以0.01为间隔
s = np.sin(2*np.pi*t)#y轴为正弦
plt.plot(t, s)#画图
plt.xlabel('time (s)')#x轴标签
plt.ylabel('voltage (mV)')#y轴标签
plt.title('About as simple as it gets, folks')#图的标签
plt.grid(True)#产生网格
plt.savefig("test.png")#保存图像
plt.show()#显示图像
这是在一个窗口中画单张图的过程,那么如何画多张图呢?画图的过程相同,无非是画多张,然后设定位置。
x1 = np.linspace(0.0, 5.0)#画图一
x2 = np.linspace(0.0, 2.0)#画图二
y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
y2 = np.cos(2 * np.pi * x2)
plt.subplot(2, 1, 1)#面板设置成2行1列,并取第一个(顺时针编号)
plt.plot(x1, y1, 'yo-')#画图,染色
plt.title('A tale of 2 subplots')
plt.ylabel('Damped oscillation')
plt.subplot(2, 1, 2)#面板设置成2行1列,并取第二个(顺时针编号)
plt.plot(x2, y2, 'r.-')#画图,染色
plt.xlabel('time (s)')
plt.ylabel('Undamped')
plt.show()
两张图的示例如下
直方图的画法
# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
mu = 100 # 正态分布的均值
sigma = 15 # 标准差
x = mu + sigma * np.random.randn(10000)#在均值周围产生符合正态分布的x值
num_bins = 50
n, bins, patches = plt.hist(x, num_bins, normed=1, facecolor='green', alpha=0.5)
#直方图函数,x为x轴的值,normed=1表示为概率密度,即和为一,绿色方块,色深参数0.5.返回n个概率,直方块左边线的x值,及各个方块对象
y = mlab.normpdf(bins, mu, sigma)#画一条逼近的曲线
plt.plot(bins, y, 'r--')
plt.xlabel('Smarts')
plt.ylabel('Probability')
plt.title(r'Histogram of IQ: $\mu=100$, $\sigma=15$')#中文标题 u'xxx'
plt.subplots_adjust(left=0.15)#左边距
plt.show()
直方图如下
3D图像的画法
3D离散点
#!/usr/bin/env python
# encoding: utf-8
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
x_list = [[3,3,2],[4,3,1],[1,2,3],[1,1,2],[2,1,2]]
fig = plt.figure()
ax = fig.gca(projection='3d')
for x in x_list:
ax.scatter(x[0],x[1],x[2],c='r')
plt.show()
画空间平面
from mpl_toolkits.mplot3d.axes3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection='3d')
X=np.arange(1,10,1)
Y=np.arange(1,10,1)
X, Y = np.meshgrid(X, Y)
Z = 3*X+2*Y+30
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1,cmap=cm.jet,linewidth=0, antialiased=True)
ax.set_zlim3d(0,100)
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()
画空间曲面
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.1)
Y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)
#画表面,x,y,z坐标, 横向步长,纵向步长,颜色,线宽,是否渐变
ax.set_zlim(-1.01, 1.01)#坐标系的下边界和上边界
ax.zaxis.set_major_locator(LinearLocator(10))#设置Z轴标度
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))#Z轴精度
fig.colorbar(surf, shrink=0.5, aspect=5)#shrink颜色条伸缩比例(0-1),aspect颜色条宽度(反比例,数值越大宽度越窄)
plt.show()
3D图分别如下
饼状图画法
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'#设置标签
sizes = [15, 30, 45, 10]#占比,和为100
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']#颜色
explode = (0, 0.1, 0, 0) #展开第二个扇形,即Hogs,间距为0.1
plt.pie(sizes, explode=explode, labels=labels, colors=colors,autopct='%1.1f%%', shadow=True, startangle=90)#startangle控制饼状图的旋转方向
plt.axis('equal')#保证饼状图是正圆,否则会有一点角度偏斜
fig = plt.figure()
ax = fig.gca()
import numpy as np
ax.pie(np.random.random(4), explode=explode, labels=labels, colors=colors,autopct='%1.1f%%', shadow=True, startangle=90, radius=0.25, center=(0, 0), frame=True)
ax.pie(np.random.random(4), explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=90, radius=0.25, center=(1, 1), frame=True)
ax.pie(np.random.random(4), explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=90, radius=0.25, center=(0, 1), frame=True)
ax.pie(np.random.random(4), explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=90,radius=0.25, center=(1, 0), frame=True)
ax.set_xticks([0, 1])#设置位置
ax.set_yticks([0, 1])
ax.set_xticklabels(["Sunny", "Cloudy"])#设置标签
ax.set_yticklabels(["Dry", "Rainy"])
ax.set_xlim((-0.5, 1.5))
ax.set_ylim((-0.5, 1.5))
ax.set_aspect('equal')
plt.show()
饼状图如下:
平时用到的也就这几种,掌握这几种就差不多了,更多内容见
https://matplotlib.org/users/screenshots.html
来源:http://blog.csdn.net/ali197294332/article/details/51694141


猜你喜欢
- 我看见朋友可以把数据库的记录输出到页面表格上去,觉得很有用。这是怎么做的啊?见下:dbtable.asp<html><he
- 条件查询范围查询模糊查询条件查询all()返回全部结果集filter(**kwargs)返回满足参数定义的结果集 例如Entry.objec
- 在最古老的JavaScript浏览器里注册事件只能通过内联模式。自从DHTML从根本上改变了你操作页面的方法,事件的注册就必须有扩展性而且要
- Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的
- mysql-5.7.23-winx64 解压版详细安装教程,供大家参考,具体内容如下1、Click here to download Mys
- 机器A: select instance_name from v$instance; select name from v$database
- 在布尔索引中,我们将根据 DataFrame 中数据的实际值而不是它们的行/列标签或整数位置来选择数据子集。在布尔索引中,我们使用布尔向量来
- 引言软件开发经历了许多阶段,如需求收集和分析、设计、软件开发、测试和发布。测试是 SDLC 不可或缺的一部分,单元测试是一种可靠的测试类型。
- 上一文写了如何从代理服务网站提取 IP,本文就讲解如何存储 IP,毕竟代理池还是要有一定量的 IP 数量才行。存储的方式有很多,直接一点的可
- 本文实例讲述了python实现的汉诺塔算法。分享给大家供大家参考,具体如下:规则:圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定在
- 如下所示:import ospath="/home/test/" #待读取的文件夹path_list=os.listdi
- 前言最近在做一个人脸识别的项目,需要用数据库保存学生信息与前段交互。MySQL的优点1、mysql性能卓越,服务稳定,很少出现异常宕机。2、
- 前言提示:以下是本篇文章正文内容🧡基本概念🌳树的定义树是n(n≥0)个结点的有限集合,n = 0时,称为空树,这是一种特殊情况在任意一棵非空
- 前言sys模块是与python解释器交互的一个接口。sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分。处理命令行参
- 一个重要的应用就是如何在遗忘root用户密码的时候修改密码,使用的方法是启动MySQL服务器时忽略加载授权表。由MySQL使用用户名和口令的
- 本文采用vue,同时增加鼠标点击事件和一些页面小优化基本结构新建一个sandBox.vue文件编写功能的基本结构 <div class
- 本文实例讲述了Python显示进度条的方法,是Python程序设计中非常实用的技巧。分享给大家供大家参考。具体方法如下:首先,进度条和一般的
- 1. 在猜年龄的基础上编写登录、注册方法,并且把猜年龄游戏分函数处理,如2. 登录函数3. 注册函数4. 猜年龄函数5. 选择奖品函数代码如
- 本教程使用python来生成随机漫步数据,再使用matplotlib将数据呈现出来开发环境操作系统: Windows10 IDE: Pych
- 代码如下:< % '功能:显示数据库中表名、字段名、字段内容 '原创:wangsdong