Python数据分析U3-matplotlib可视化基础

二 Python数据分析U3-matplotlib可视化高级

1、折线图

import matplotlib.pyplot as plt
x = [1,2,3]
y = [2,3,6]
plt.plot(x,y)#绘制折线图
plt.show

2、直方图

import matplotlib.pyplot as plt
import numpy as np
data = np.random.randn(10000)
# bins为颗粒度、及直方图的柱形数量,edgecolor为边框颜色
plt.hist(data,bins=40,edgecolor='black')
plt.savefig("p1")
plt.show()

3、条形图

import numpy as np
import matplotlib
# matplotlib.use('nbagg')#(jupyter图形显示)
import matplotlib.pyplot as plt
# %matplotlib#(pycharm或jupyter图形独立显示)
np.random.seed(0)
x = np.arange(5)
y = np.random.randint(-5,5,5)
print (y)
fig,axes = plt.subplots(ncols = 2)
v_bars = axes[0].bar(x,y,color='red')
h_bars = axes[1].barh(x,y,color='blue')axes[0].axhline(0,color='grey',linewidth=2)
axes[1].axvline(0,color='grey',linewidth=2)
plt.savefig('img/pi')
plt.show()


在绘图过程中,有事需要考虑误差棒,以表示数据或实验的偏离情况


variance = [0.2,0.4,0.5]mean_values = [1,2,3]
variance = [0.2,0.4,0.5]
bar_label = ['bar1','bar2','bar3']x_pos = list(range(len(bar_label)))
plt.bar(x_pos,mean_values,yerr=variance,alpha=0.3)
max_y = max(zip(mean_values,variance))
plt.ylim([0,(max_y[0]+max_y[1])*1.2])#[0,(max_y[0]+max_y[1])*1.2]
plt.ylabel('variable y')
plt.xticks(x_pos,bar_label)
plt.show()

有时候我们需要多组数据对比

import numpy as np
import matplotlib
# matplotlib.use('nbagg')
import matplotlib.pyplot as plt
# %matplotlib
import numpy as npx1 = np.array([1,2,3])
x2 = np.array([2,2,3])bar_labels = ['bat1','bar2','bar3']
fig = plt.figure(figsize = (8,6))
y_pos = np.arange(len(x1))
print(y_pos)
y_pos = [x for x in y_pos]
print(y_pos)
plt.barh(y_pos,x1,color='g',alpha = 0.5)
plt.barh(y_pos,-x2,color='b',alpha = 0.5)plt.xlim(-max(x2)-1,max(x1)+1)
plt.ylim(-1,len(x1)+1)
plt.savefig('img/p2')
plt.show()

注意:论文如果不彩色打印,绘制打印出来的图几乎一样,没有色彩渲染,以下可以这样绘制


patterns = ('-', '+', 'x', '\\', '*', 'o', 'O', '.')fig = plt.gca()mean_value = range(1,len(patterns)+1)
x_pos = list(range(len(mean_value)))bars = plt.bar(x_pos,mean_value,color='white',edgecolor='black')for bar,pattern in zip(bars,patterns):bar.set_hatch(pattern)
plt.show()

4、盒图

梳理统计中经常用到盒图分析数据从上到下:最大值(max)、上四分位数(Q3)、中位数(median)、下四分位数(Q1)、最小值(min)

导入需要的库

import matplotlib.pyplot as plt
import numpy as np

常用属性,建议直接copy(亲测实用!!)

属性 说明
notch 展示箱图是否凹口,默认False
sym 设置异常数据样式
meanline 均值样式,这里绿色表示均值
showmeans 显示均值线

实例:

import matplotlib.pyplot as plt
import numpy as np
tang_data = [np.random.normal(0,std,100) for std in range(1,4)]
fig = plt.figure(figsize = (8,6))
plt.boxplot(tang_data,notch=True,sym='+',meanline=True,showmeans=True)plt.xticks([y+1 for y in range(len(tang_data))],['x1','x2','x3'])
plt.xlabel('x')
plt.title('box plot')
plt.show()

5、散点图

散点图反应数据分散情况,为以后数据建模回归分析具有很大作用

实例:

N=1000
x = np.random.randn(N)
y = np.random.randn(N)
plt.scatter(x,y,alpha=0.5)
plt.grid(True)
plt.show()


给点设置颜色添加美观

import matplotlib.pyplot as plt
import numpy as npn = 1000
X = np.random.normal(0,1,n)
Y = np.random.normal(0,1,n)
T = np.arctan2(Y,X)#for color later onplt.scatter(X,Y,s = 75,c = T,alpha = .5)plt.xlim((-1.5,1.5))
plt.xticks([])#ignore xticks
plt.ylim((-1.5,1.5))
plt.yticks([])#ignore yticks
plt.savefig('img/p6')
plt.show()

6、3D

如果需要绘制3D图,需要额外导入3D库

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

基础三维坐标显示

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()
ax = fig.add_subplot(111,projection = '3d')
plt.show()

3D绘制

fig = plt.figure()
ax = Axes3D(fig)
#X Y value
X = np.arange(-4,4,0.25)
Y = np.arange(-4,4,0.25)
X,Y = np.meshgrid(X,Y)
R = np.sqrt(X**2 + Y**2)
#hight value
Z = np.sin(R)ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'))
"""
============= ================================================Argument      Description============= ================================================*X*, *Y*, *Z* Data values as 2D arrays(数据值作为2D数组)*rstride*     Array row stride (step size), defaults to 10(数组行步幅(步长),默认为10)*cstride*     Array column stride (step size), defaults to 10(数组列步幅(步长),默认为10)*color*       Color of the surface patches(表面斑块的颜色)*cmap*        A colormap for the surface patches.(表面补丁的彩色地图)*facecolors*  Face colors for the individual patches(面部颜色的个别补)*norm*        An instance of Normalize to map values to colors(Normalize将值映射到颜色的实例)*vmin*        Minimum value to map(最小映射值)*vmax*        Maximum value to map*shade*       Whether to shade the facecolors(是否要遮光脸的颜色)============= ================================================
"""ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.get_cmap('rainbow'))
"""
==========  ================================================Argument    Description==========  ================================================*X*, *Y*,   Data values as numpy.arrays*Z**zdir*      The direction to use: x, y or z (default)(使用方向:x, y或z(默认))*offset*    If specified plot a projection of the filled contouron this position in plane normal to zdir(如果指定,绘制填充轮廓的投影
在垂直于zdir的平面上的这个位置)==========  ================================================
"""
ax.set_zlim(-2, 2)
plt.savefig('img/p7')
plt.show()

三维柱形图

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D# %matplotlibfig = plt.figure()
ax = fig.add_subplot(111, projection='3d') for c, z in zip(['r', 'g', 'b', 'y'], [30, 20, 10, 0]): xs = np.arange(20)ys = np.random.rand(20)cs = [c]*len(xs)ax.bar(xs,ys,zs = z,zdir='y',color = cs,alpha = 0.5)
plt.show()

Python数据分析U3-matplotlib可视化高级相关推荐

  1. Python数据分析19——matplotlib可视化(一)之线形图

    matplotlib绘制线形图 线形图是最基本的图表了,没有之一,所以这是我们必须掌握的技能. 准备 首先,我们必须先安装matplotlib模块. pip install matplotlib 然后 ...

  2. Python数据分析(matplotlib、numpy、pandas)

    Python数据分析 1.matplotlib 1.1 什么是matplotlib 能将数据进行可视化,更直观的呈现 使数据更加客观,更有说服力 matplotlib:最流行的Python底层绘图库, ...

  3. Python数据分析 2.Matplotlib绘图—常用统计图

    Python数据分析 2.Matplotlib绘图-常用统计图 1.绘制散点图 from matplotlib import pyplot as plt from matplotlib import ...

  4. Python数据分析之Matplotlib的常用操作总结

    特别鸣谢以下更多python教程请到友情连接: 菜鸟教程https://www.piaodoo.com 初中毕业读什么技校 http://cntkd.net 茂名一技http://www.enechn ...

  5. python逐笔输入数据_知到智慧树Python数据分析与数据可视化结课测验

    知到智慧树Python数据分析与数据可视化结课测验答案 更多相关问题 已知三角形三个顶点的坐标是A(-1,2,3),B(1,1,1),C(0,0,5),试证三角形ABC是直角三角形,并求角B-- Wh ...

  6. python集合中的元素不允许重复_Python语言中同一个集合中的元素不会重复,每个元素都是唯一的。-智慧树Python数据分析与数据可视化章节答案...

    Python数据分析与数据可视化:Python语言中同一个集合中的元素不会重复,每个元素都是唯一的.[?ж???] A:对 B:错 Python数据分析与数据可视化章节测试答案: 对 更多相关问题 智 ...

  7. Python数据分析之matplotlib折线图

    Python数据分析之matplotlib折线图 1.需求 2.需求分析 3.代码示例 4.总结和思考 1.需求 需求假设大家在30岁,根据实际情况,统计出你和同桌从11岁倒30岁做成的男女朋友数量, ...

  8. python数据分析之matplotlib(一)

    Matplotlib入门 1.Matplotlib基础 matplotlib是一个python的2D图形包 plt:matplotlib.pyplot plt.show()函数 默认情况下,matpl ...

  9. 【数据分析】Matplotlib可视化最有价值的图表之——1、关联(Correlation)

      本文总结了 Matplotlib 以及 Seaborn 用的最多的 50 个图形,掌握这些图形的绘制,对于数据分析的可视化有莫大的作用,运行本文代码,除了安装 matplotlib 和 seabo ...

  10. [转载] Python数据分析之Matplotlib数据可视化实例

    参考链接: 使用Python进行数据分析和可视化2 Matplotlib数据可视化的应用实例 分析 :2000至2017年各季度国民生产总值数据  npy文件--numpy专用的二进制格式 np.lo ...

最新文章

  1. 【JQUBAR1.1】jQuery 插件发布
  2. 腾讯优图8篇论文入选ECCV 2020,涵盖目标检测/跟踪/Re-ID/人脸等领域
  3. 蓝桥杯 历届试题 分考场(DFS+枚举)
  4. 网络编程中设计并发服务器,使用多进程 与 多线程 ,请问有什么区别?
  5. ITK:创建3D体积
  6. Lua的继承(利用setmetatable)
  7. Java --- 基础学习Ⅰ
  8. oracle不空顺序输出,Oracle应用笔记
  9. 怎样将树的中序遍历的数输入到一个数组中_LeetCode 530.二叉搜索树的最小绝对差
  10. sdutacm 1566 幸运数(bfs)
  11. Selenium API-WebElement 属性
  12. 堆排序算法知识点总结
  13. 整理了18个可以免费学习编程的网站
  14. RGB565 与 RGB888的相互转换
  15. 我他妈的是什么!!!!
  16. CF1004F Sonya and Bitwise OR(线段树平衡复杂度+or 前缀性质)
  17. 2023年电工杯B题详解
  18. SPA项目开发之登录
  19. 基于Python,OpenCV,Numpy和Albumentations实现目标检测的合成数据集
  20. 一键快速构建 vue-electron 项目

热门文章

  1. 解决iframe嵌套微信公众号文章图片不显示的方案
  2. DELL服务器 RAID 配置详解
  3. 给定一个数组,求数组的最大连续子数组,使得该子数组的和最大
  4. google play以及google pay
  5. oracle minus intersect,oracle之集合操作函数---minus、union、intersect
  6. 首发:最新CPU漏洞Meltdown详细分析
  7. 拉勾网的职位信息爬取(详细)
  8. 规格模式(Specification)
  9. 前端灰度发布落地方案
  10. 利用EXCEL将中文汉字转为拼音