python绘制图形
python能快速解决日常工作中的小任务,比如数据展示。
python做数据展示,主要用到matplotlib库,使用简单的代码,就可以很方便的绘制折线图、柱状图等。使用Java等,可能还需要配合html来进行展示,十分繁琐。
绘制的图形举例如下:


各种平面图的绘制代码:
'''
File Name: draw
Author: tim
Date: 2018/8/15 16:47
Description: 图形绘制。十分有用,对于工作中实验性的项目,可以快速展示效果。如果使用java,还需要配合前端展示。
''' import matplotlib.pyplot as plt
import numpy as np # 模块取别名 # 直方图
def draw_hist():
mu = 100
sigma = 20 x = mu + sigma * np.random.randn(20000) # 样本数量
plt.hist(x, bins=100, color='green', normed=True) # bins:显示有几个直方,normed是否对数据进行标准化 plt._show() # 条形图
def draw_bar():
y = [20, 10, 30, 25, 15] # Y轴数据
index = np.arange(5) # X轴数据,也可以是index = [0,5] plt.bar(left=index, height=y, color='blue', width=0.5)
plt.show() # 折线图
def draw_plot():
x = np.linspace(-10, 10, 100) # -10到10,100个点
y = x ** 3 # x的3次幂 plt.plot(x, y, linestyle='--', color='orange', marker='<')
plt.xlabel('X')
plt.ylabel('Y') plt.show() # 散点图
def draw_scatter():
x = np.random.randn(1000)
y = x + np.random.randn(1000) * 0.5 plt.scatter(x, y, s=5, marker='<') # s表示面积,marker表示图形
plt.show() # 饼状图
def draw_pie():
labels = 'A', 'B', 'C', 'D' # 4个模块
fracs = [15, 30, 45, 10] # 每个模块占比例 plt.axes(aspect=1) # 使x、y轴比例相同
explode = [0, 0.5, 0, 0] # 突出某一部分区域 plt.pie(x=fracs, labels=labels, autopct='%.0f%%', explode=explode) # autopct显示百分比
plt.show() # 带图例
def draw_with_legend():
x = np.arange(1, 11, 1) # x轴坐标,1开始,11结束,步长为1 plt.plot(x, x * 2) # 第一条线,x,y坐标
plt.plot(x, x * 3)
plt.plot(x, x * 4) plt.legend(['Normal', 'Fast', 'Faster']) # 设置图例,与上面的线对应
plt.grid(True, color='green', linestyle='--', linewidth=1) # 绘制网格 plt.show() # start
if __name__ == '__main__':
# draw_hist()
# draw_bar()
draw_plot()
# draw_scatter()
# draw_pie()
# draw_with_legend()
3D图的绘制代码:
'''
File Name: draw_3d
Author: tim
Date: 2018/8/15 18:42
Description: 3D绘图
''' import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D # 3D 绘制
def draw_3D():
fig = plt.figure() # 定义一个窗口
ax = Axes3D(fig) # 绘制3D坐标 # 设置x、y、z的值
x = np.arange(-4, 4, 0.25)
y = np.arange(-4, 4, 0.25)
x, y = np.meshgrid(x, y) # x-y 平面的网格 r = np.sqrt(x ** 2 + y ** 2)
z = np.sin(r) # z值 # 做出一个三维曲面,并将一个 colormap rainbow 填充颜色,之后将三维图像投影到 XY 平面上做一个等高线图
# rstride 和 cstride 分别代表 row 和 column 的跨度。
ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow')) # 添加 XY 平面的等高线
ax.contourf(x, y, z, zdir='z', offset=-2, cmap=plt.get_cmap('rainbow')) ax.set_zlim(-2, 2)
plt.show() # 展示 # start
if __name__ == '__main__':
draw_3D()
python绘制图形的更多相关文章
- python绘制图形(Turtle模块)
用python的Turtle模块可以绘制很多精美的图形,下面简单介绍一下使用方法. 需要用到的工具有python,python 的安装这里就不再细说.自行搜索. from turtle import ...
- python中的turtle库绘制图形
1. 前奏: 在用turtle绘制图形时,需要安装对应python的解释器以及IDE,我安装的是pycharm,在安装完pycharm后,在pycharm安装相应库的模块,绘图可以引入turtle模块 ...
- 009 Python基本图形绘制
目录 一.概论 二.方法论 三.实践能力 一.概论 深入理解Python语言 实例2: Python蟒蛇绘制 模块1: turtle库的使用 turtle程序语法元素分析 二.方法论 Python语言 ...
- 014 Python基本图形绘制小结
目录 一.Python基本语法元素 1.1 温度转换 二.Python基本图形绘制 2.1 Python蟒蛇绘制 一.Python基本语法元素 缩进.注释.命名.变量.保留字 数据类型.字符串. 整数 ...
- Python绘制3D图形
来自:https://www.jb51.net/article/139349.htm 3D图形在数据分析.数据建模.图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何使用python进行 ...
- Python绘制PDF文件~超简单的小程序
Python绘制PDF文件 项目简介 这次项目很简单,本次项目课,代码不超过40行,主要是使用 urllib和reportlab模块,来生成一个pdf文件. reportlab官方文档 http:// ...
- 运用python绘制小猪佩奇
用python绘制小猪佩奇 1.打开idle 2.点击File-New Files 3.输入以下代码 1. from turtle import * 2. 3. def nose(x,y):#鼻子 4 ...
- Python绘制奥运五环
绘制奥运五环主要涉及到Python中的turtle绘图库运用: turtle.forward(distance) 向当前画笔方向移动distance像素长度 turtle.backward(dista ...
- 「Python」python绘制图表
介绍一种简单而又功能强大的绘制图形或报表的包—pyecharts,一个基于Echarts(基于JS的数据可视化库)的图标类库,除了绘制常见的折线图.柱状图.饼图.箱型图和散点图外,还可以绘制3D柱状图 ...
随机推荐
- 很详细全部的WinDbg学习资料
[ 分类 ]- windbg - hgy413的专栏(﹎゛Never Give Up Your Dream ..ヽ..) - CSDN博客 .
- CentOS 7 源码编译安装 Redis
1.下载源码并解压 wget http://download.redis.io/releases/redis-4.0.10.tar.gz tar -xzf redis-4.0.10.tar.gz cd ...
- 第一次在新西兰组织技术社区活动:Monkeyfest2018
从3月份登陆到现在,转眼间已经8个月了.在6个月的时候我就想写篇文总结下近期的一些状况,一直拖到现在.因为近期一直在筹备我第一次社区活动——Monkeyfest 2018,占用了比较多的时间.这是一个 ...
- 移动H5页面微信支付踩坑之旅(微信支付、单页面路由模拟、按钮加锁、轮询等常见功能)
开发背景: .net混合开发的vue模板语法的单页面应用,所以不存在脚手架以及没有路由可以跳转. 项目描述: 需要写两个页面,在订单详情页需要点击“请输入手机号”进入手机号绑定页面,手机号绑定成功后自 ...
- UVA - 12169 -扩展欧几里得算法
#include<iostream> #include<string.h> #include<algorithm> #include<stdio.h> ...
- c++学习之字符串拼接
在这里,强调这样一个问题: 可以看出,c++中,定义了string类,string 类方便我们进行字符串的一些操作,而不是像C语言中采用字符数组的方式或者指针的方式,通过上面的一些描述,可以发现: s ...
- transfer.sh:通过命令行简单的创建文件分享
简介 通过一个命令,就可以在终端上,将文件加密传输到远程服务器,提供对外文件共享的功能. transfer.sh这是一个我常用的.可以在终端上使用的文件共享服务,可以在某些方面替代sz或者scp命令. ...
- mysql数据的导入和导出
一. mysqldump工具基本用法,不适用于大数据备份 1. 备份所有数据库: mysqldump -u root -p --all-databases > all_database_sq ...
- C#对摄像头的操作示例,采用Aforge库
操作摄像头有三个办法:VFW.DirectShow.花钱买第三方控件 VFW技术比较古老,无法解决驱动不完善造成的某些问题 DirectShow技术相对完善一些,但这是C++才能实现的技术.如果用.N ...
- 为什么HashMap初始大小为16,为什么加载因子大小为0.75,这两个值的选取有什么特点?
先看HashMap的定义: public class HashMap<K,V>extends AbstractMap<K,V>implements Map<K,V> ...