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柱状图 ...
随机推荐
- Unity编辑器:自定义编辑器样式——GUIStyle
通过GUIStyle,可以自定义Unity编辑器的样式. GUIStyle可以new一个全新的实例,这样,需要自己处理所有自己需要的效果. GUIStyle还可以基于已经存在的实例new一个新的实例, ...
- Numpy求均值、中位数、众数的方法
首先需要数据源,这里随便写了一个: nums = [1,2,3,4] 求均值和中位数均可以使用numpy库的方法: import numpy as np #均值 np.mean(nums) #中位数 ...
- SQLSERVER操作字段约束,修改字段名称等
-- 表加注释EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'注释内容' , @level0type=N'SCHEM ...
- 深入理解JAVA虚拟机(内存模型+GC算法+JVM调优)
目录 1.Java虚拟机内存模型 1.1 程序计数器 1.2 Java虚拟机栈 局部变量 1.3 本地方法栈 1.4 Java堆 1.5 方法区(永久区.元空间) 附图 2.JVM内存分配参数 2.1 ...
- Spring MVC自定义403,404,500状态码返回页面
代码 HTTP状态码干货:http://tool.oschina.net/commons?type=5 import org.springframework.boot.web.servlet.erro ...
- 安卓权限申请处理框架Android-UsesPermission
安卓权限申请封装处理框架.测试支持4.0+.项目源于正式处理Android权限问题时,没找到简单.能满足被拒绝权限自动会到系统设置处理的框架,按自己的编程习惯造一个熟悉的轮子还是蛮好的.第一次使用An ...
- gulp + gulp-better-rollup + rollup 构建 ES6 开发环境
gulp + gulp-better-rollup + rollup 构建 ES6 开发环境 关于 Gulp 就不过多啰嗦了.常用的 js 模块打包工具主要有 webpack.rollup 和 bro ...
- java 浅克隆 深克隆
对象的克隆是java的一项高级技术,他可以根据给定的对象,获得与其完全相同的另一个对象. 1.浅克隆主要是复制对象的值 2.深克隆:当类存在聚合关系的时候,克隆就必须考虑聚合对象的克隆,可以复制引用类 ...
- mysql索引及优化
索引; 2.索引入门对于任何DBMS,索引都是进行优化的最主要的因素.对于少量的数据,没有合适的索引影响不是很大,但是,当随着数据量的增加,性能会急剧下降.如果对多列进行索引(组合索引),列的顺序非常 ...
- Mysql数据库中的日期相关操作
1.获取当前时间的日期 select now();----------------------------------如:2008-12-29 16:25:46 select curdate();-- ...