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柱状图 ...
随机推荐
- linux日志:syslogd和klogd及syslog
一. 日志守护进程 syslogd和klogd是很有意思的守护进程,syslogd是一个分发器,它将接收到的所有日志按照/etc/syslog.conf的配置策略发送到这些日志应该去的地方,当然也包括 ...
- face detection[HR]
该模型hybrid-resolution model (HR),来自<finding tiny faces>,时间线为2016年12月 0 引言 虽然大家在目标识别上有了较好的进步,可是检 ...
- Java内存模型与线程安全
原文链接:blog.edreamoon.com Java内存模型 计算机cpu的运算能力强大,但是数据的存储相对于cpu运算能力需要消耗大量时间,为了充分利用运算能力引入了缓存,但是也为计算机系统带来 ...
- 探讨.NET Core中实现AES加密和解密以及.NET Core为我们提供了什么方便!
前言 对于数据加密和解密每次我都是从网上拷贝一份,无需有太多了解,由于在.net core中对加密和解密目前全部是统一了接口,只是做具体的实现,由于遇到过问题,所以将打算基本了解下其原理,知其然足矣, ...
- ubuntu下无法在目录下创建文件夹,权限不足解决办法
问题详情:偶然在根目录创建文件夹的时候,突然显示错误,当时很惊讶,以前没遇见过这样的问题.当时界面是这样的. 用了一个 cd / 命令从用户磁盘跳到了根目录 使用 mkdir 命令准备创建一个文件夹, ...
- Python 学习 第十三篇:数据的读写-文件、DataFrame、json
Python的文件是一个重要的对象,使用open()函数来打开文件,创建文件对象,进行文件的读写操作.当数据用于交换信息时,通常需要把数据保存为有格式的文本数据,可以保存为有特定的行分隔符和列分隔符的 ...
- Docker for .Net Developers(part1:Docker基本概念介绍)
一.什么是Docker 目前,.Net 社区中很可能会用到的两个词是“微服务”和“Docker”. 这两个主题都非常引人注目,并为开发人员和架构师带来兴奋之情. 在这个新系列的博客文章中,我把自己最近 ...
- prometheus排错
1.导入grafana模板后node-export某些图像无法获取到data: 解决:导入grafana 模板是需要看node-export 版本是否与模板要求的一致,不同版本的node-export ...
- oracle表空间不足,ORA-00604的解决方法
参考文章: http://blog.chinaunix.net/uid-26446098-id-3344813.html 错误信息如下: 从错误的角度可以推出:应该是表空间不足 根据查看表空间的使用情 ...
- 通过设置线程池的最小线程数来提高task的效率,SetMinThreads。
http://www.cnblogs.com/Charltsing/p/taskpoolthread.html task默认对线程的调度是逐步增加的,连续多次运行并发线程,会提高占用的线程数,而等若干 ...