1.填充两条曲线之间区域

import matplotlib.pyplot as plt
import numpy as npn = 1000
x = np.linspace(0, 8*np.pi, n)
sin_x = np.sin(x)
cos_x = np.cos(x/2)/2plt.figure('filling graph')
plt.xlabel('x')
plt.ylabel('y')
plt.grid(linestyle=':')
plt.plot(x, sin_x, label='$y=sin(x)$')
plt.plot(x, cos_x, label='$y=cos(x)$')
plt.fill_between(x, sin_x, cos_x, sin_x < cos_x, color='orangered', alpha=0.5)
plt.fill_between(x, sin_x, cos_x, sin_x > cos_x, color='blue', alpha=0.5)
plt.legend()
# plt.tight_layout()
plt.show()

2.柱状图

import matplotlib.pyplot as plt
import numpy as np# 柱状图
plt.figure('bar chart')
plt.title('bar chart', fontsize=18)
apples = np.array([30, 25, 22, 36, 21, 29, 20, 24, 33, 19, 27, 15])
oranges = np.array([24, 33, 19, 27, 35, 20, 15, 27, 20, 32, 20, 22])
plt.xlabel('date', fontsize=14)
plt.ylabel('volume', fontsize=14)
x = np.arange(apples.size)
plt.bar(x-0.2, apples, 0.4, label='apples'
)
plt.bar(x+0.2, oranges, 0.4, label='apples'
)
plt.xticks(x, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun','Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])
plt.legend()
plt.show()

3.饼状图

# 饼状图
plt.figure('pie chart')
plt.title('pie chart', fontsize=20)
values = [26, 17, 21, 29, 11]
spaces = [0.01]*5
labels = ['python', 'c', 'c++', 'java', 'php']
colors = ['red', 'blue', 'green', 'grey', 'orange']
# plt.axis('equal')
plt.pie(values,spaces,labels,colors,'%d%%',# shadow=True,radius=1
)
plt.show()

4.等高线

# 等高线n = 1000
x, y = np.meshgrid(np.linspace(-3, 3, n), np.linspace(-3, 3, n))
z = (1 - x/2 + x**5 + y**3) * np.exp(-x**2 - y**2)plt.figure('contour', facecolor='grey')
plt.title('contour', fontsize=20)# 绘制等高线
plt.contourf(x,y,z,8,                # 等高线份数cmap='jet')
con = plt.contour(x, y, z, 8, colors='black', linewidths=0.5)     # 线设置
# 增加标签
plt.clabel(con, inline_spacing=1, fmt='%0.1f', fontsize=10)
plt.show()

5.热成像图

# 热成像
n = 1000
x, y = np.meshgrid(np.linspace(-3, 3, n), np.linspace(-3, 3, n))
z = (1 - x/2 + x**5 + y**3) * np.exp(-x**2 - y**2)
plt.figure('imshow', facecolor='grey')
plt.title('imshow', fontsize=20)
plt.grid(linestyle=':')plt.imshow(z, cmap='jet', origin='low')
plt.colorbar()                 # 显示颜色样式条
plt.show()

6.极坐标绘制星型图

x = np.linspace(0, 6*np.pi, 1000)plt.polar(x, 1 + np.cos(3*x) + 1.5*np.sin(3*x)**2)
plt.show()

7.3D图形绘制

from mpl_toolkits.mplot3d import axes3d# 三维点阵
n = 1000
x = np.random.normal(0, 1, n)
y = np.random.normal(0, 1, n)
z = np.random.normal(0, 1, n)
d = np.sqrt(x**2+y**2+z**2)plt.figure('3d scatter', facecolor='grey',)
ax = plt.gca(projection='3d')
plt.title('3d scatter', fontsize=20)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
ax.scatter(x, y, z, s=60, c=d, cmap='jet')
plt.show()# 3d平面图
n = 1000
x, y = np.meshgrid(np.linspace(-3, 3, n), np.linspace(-3, 3, n))
z = (1 - x/2 + x**5 + y**3) * np.exp(-x**2 - y**2)
plt.figure('3d surface')
ax = plt.gca(projection='3d')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')ax.plot_surface(x, y, z, rstride=30, cstride=30, cmap='jet')
plt.show()# 三维线框图
n = 1000
x, y = np.meshgrid(np.linspace(-3, 3, n), np.linspace(-3, 3, n))
z = (1 - x/2 + x**5 + y**3) * np.exp(-x**2 - y**2)
plt.figure('3d wire frame')
ax = plt.gca(projection='3d')
plt.title('3d wire frame')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')ax.plot_wireframe(x, y, z, rstride=30, cstride=30, cmap='jet')
plt.show()

8.简单动画绘制

# 简单动画
import matplotlib.animation as ma# 自定义一种可以存放在ndarray里的类型,用于保存一个球
ball_type = np.dtype([('position', float, 2),  # 位置(水平和垂直坐标)('size', float, 1),      # 大小('growth', float, 1),    # 生长速度('color', float, 4)])    # 颜色(红、绿、蓝和透明度)
n = 100
balls = np.zeros(n, dtype=ball_type)
balls['position'] = np.random.uniform(0, 1, (n, 2))
balls['size'] = np.random.uniform(40, 70, n)
balls['growth'] = np.random.uniform(10, 20, n)
balls['color'] = np.random.uniform(0, 1, (n, 4))plt.figure('animation')
plt.title('animation', fontsize=20)
plt.xticks([])
plt.yticks([])sc = plt.scatter(balls['position'][:, 0],balls['position'][:, 1],balls['size'],color=balls['color'], alpha=0.5)# 定义更新
def update(number):balls['size'] += balls['growth']ball_ind = number % nballs[ball_ind]['size'] = np.random.uniform(40, 70, 1)balls[ball_ind]['position'] = np.random.uniform(0, 1, (1, 2))sc.set_sizes(balls['size'])sc.set_offsets(balls['position'])# 每隔30毫秒执行一次update更新函数,作用于mp.gcf()当前窗口对象
# plt.gcf(): 获取当前窗口
# update:        更新函数
# interval:  间隔时间(单位:毫秒)
anim = ma.FuncAnimation(plt.gcf(), update, interval=3)plt.show()

9.使用生成器绘制y=sin(x)

# 使用生成器绘制动画
plt.figure('signal')
plt.title('signal', fontsize=20)plt.ylim(-3, 3)
plt.xlim(0, 10)plt.grid(linestyle='--')
pl = plt.plot([], [], label='signal')[0]
pl.set_data([], [])x = 0def update(data):t, v = datax, y = pl.get_data()x.append(t)y.append(v)# 重新设置数据pl.set_data(x, y)# 移动坐标轴if x[-1] > 10:plt.xlim(x[-1]-10, x[-1])def y_generator():global x# y = np.sin(2 * np.pi * x) * np.exp(np.sin(0.2 * np.pi * x))y = np.sin(x)yield (x, y)x += 0.5anim = ma.FuncAnimation(plt.gcf(), update, y_generator, interval=30)
plt.tight_layout()
plt.show()

数据分析3之几种常用图相关推荐

  1. 曲线图绘制软件_Origin教程丨一文教你快速绘制20种常用图

    来源丨Paper绘图Origin是每一位科研工作者最常用的数据绘图软件之一,具备统计.峰值分析和曲线拟合等分析功能,可以绘制出二维和三维图形. 一.绘制线(Line)图 二.绘制误差棒图三.绘制散点图 ...

  2. python数据分析常用包_python可视化数据分析常用图大集合(收藏)

    python数据分析常用图大集合:包含折线图.直方图.垂直条形图.水平条形图.饼图.箱线图.热力图.散点图.蜘蛛图.二元变量分布.面积图.六边形图等12种常用可视化数据分析图,后期还会不断的收集整理, ...

  3. python数据分析常用图大集合

    我们在做数据分析的时候,难免会用到图像来表示你要展示的东西,接下来写一下demo来表示一下各种图: 以下默认所有的操作都先导入了numpy.pandas.matplotlib.seaborn impo ...

  4. python修改文件名称唯美_5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了...

    原创:小dull鸟 python数据分析之禅 原文链接: 5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了​mp.weixin.qq.com 有时候我们做数据可视化并 ...

  5. 加速数据分析,这12种高效Numpy和Pandas函数为你保驾护航

    我们都知道,Numpy 是 Python 环境下的扩展程序库,支持大量的维度数组和矩阵运算:Pandas 也是 Python 环境下的数据操作和分析软件包,以及强大的数据分析库.二者在日常的数据分析中 ...

  6. 【2017.11.29 周三 转载之李航博士的文章:大数据分析到底需要多少种工具?】...

    原文地址:http://blog.sina.com.cn/s/blog_7ad48fee0102vb9c.html 摘要 JMLR杂志上最近有一篇论文,作者比较了179种不同的分类学习方法(分类学习算 ...

  7. 几种常吃却极没营养的日常食物

    依据热量,我们把食物分成每天必须摄取的"绿灯食物".需限量摄取的"黄灯食物",以及只能偶尔摄取的"红灯食物". [size=small][b ...

  8. python 鱼骨图_数据分析必备的三种思考模型

    原标题:数据分析必备的三种思考模型 新人学习数据分析有个误区,认为Excel很Low,SQL做久了又是表哥表姐,学习python又陷入无尽的工具包中不能自拔,迷茫到找项目学习,结果是分析又不得要领,说 ...

  9. [英语学习]表示将来时的几种常用法

    The source : http://chat.pep.com.cn/lb5000/topic.cgi?forum=10&topic=7707&show=25 Author : mu ...

最新文章

  1. 应用YOLOV4 - DeepSort 实现目标跟踪
  2. js便签笔记(9)——解读jquery源码时记录的一些知识点
  3. 佳能CANON LBP2900打印缓慢问题解决方法
  4. flutter打开android界面,在已有Android项目中使用Flutter
  5. hp 交换机远程连接_光收发器怎么安装,光纤收发器连接示意图解
  6. mtk6589显示子系统笔记(一)
  7. CAN2.0的标准帧和扩展帧格式
  8. PL/SQL Developer中文版下载以及使用图解(绿色版)
  9. pythonchallenge--0
  10. linux 安装flash tar.gz,ubuntu下安装flash(tar.gz格式)
  11. 用ng-view创建单页APP
  12. VMP2.0版本带壳调试教程
  13. plcst语言编程教程_这样高效学PLC编程,掌握ST语言运算符号编写控制程序无压力...
  14. comps电磁场模拟软件_|Mentor Graphics IE3D(电磁场仿真软件)下载v15.0官方版 - 欧普软件下载...
  15. 如何用word制作逼真的手写字体?
  16. CrossApp简介
  17. java生成pdf合同
  18. 如何查看服务器登录日志文件,服务器登录日志查看
  19. 布谷技术月刊 1608
  20. Chromium网页CPU光栅化原理分析

热门文章

  1. Python3 的 PyAudio 库获取音频设备输入输出设备信息
  2. 天线学习笔记——交叉极化(Cross-Polarization)
  3. 圆极化天线宽带化方法总结
  4. 如何端正的去学好编程
  5. uni-app入门并使用学习
  6. 建立一个前端的工具库---搭建篇
  7. matlab 保存三维矩阵,如何以Python语法读取Matlab中保存的三维矩阵(Dicom矩阵)?...
  8. Haplotype-aware genotyping from noisy long reads 单倍型识别的基因分型来自嘈杂的长读
  9. Motoman机器人离线编程——Visio Studio环境配置
  10. Linux学习之内核编译