Python之Numpy:二元函数绘制/三维数据可视化/3D

摘要:
在机器学习任务中选择计算模型或学习数学时,可视化有助于研究函数值的变化趋势,并带来直观的感觉。
意义

在机器学习任务中选择计算模型或者学习数学时,可视化有助于研究函数值的变化趋势(观察收敛、分布、几何形状等),带来直观的感受。

源码
# 绘制二元函数
    # 参考文献
    #    + python画二元函数的图像(3D) https://blog.csdn.net/your_answer/article/details/79135076
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
from matplotlib import pyplot as plt
 
fig = plt.figure()
ax = Axes3D(fig)
# x=np.arange(-2*np.pi,2*np.pi,0.1) # np.range(startValue,endValue, stepSize)
# y=np.arange(-2*np.pi,2*np.pi,0.1)
# x = np.random.rand(100) # np.random.rand(4) # 生成一维数组 形如: array([ 0.69804514, 0.48808425, 0.79440667, 0.66959075]);
# y = np.random.rand(100)
# x = np.arange(1,100,1) # np.random.rand(4) # 生成一维数组 形如: array([ 0.69804514, 0.48808425, 0.79440667, 0.66959075]);
# y = np.arange(1,100,1)
x = np.random.randint(100,size=100) # np.random.randint(20,size=10) 形如: array([4, 1, 4, 3, 8, 2, 8, 5, 8, 19])
y = np.random.randint(100,size=100)

X, Y = np.meshgrid(x, y) # [important] 创建网格 np.meshgrid(xnums,ynums)

    # Z = np.sin(X)*np.cos(Y) # 创建二元函数关系
Z = 1 / (np.log(X)*np.log(Y));

plt.xlabel('x')
plt.ylabel('y')
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow')
plt.show()
Python之Numpy:二元函数绘制/三维数据可视化/3D第1张
绘制曲线图/一元函数
  • 示例一
    # 绘制曲线图
import matplotlib.pyplot as plt

def plotLineChart():
    fig  = plt.figure()
    ax = fig.add_subplot(1,1,1) # numrows, numcols, fignum ; fignum标识了该子图的顺序,其范围从1到numrows*numcols
    ax.set_title("axes title");
    ax.set_xlabel("x label")      
    ax.set_ylabel("y label")
    ax.plot([1,2,3,4],[2,3,4,5])
    plt.show()
    pass;

plotDemo();
Python之Numpy:二元函数绘制/三维数据可视化/3D第2张
  • 示例二(进阶)
# encoding=utf-8
import matplotlib.pyplot as plt
from pylab import *                                 #支持中文
mpl.rcParams['font.sans-serif'] = ['SimHei']

names = ['5', '10', '15', '20', '25']
x = range(len(names))
y1 = [0.855, 0.84, 0.835, 0.815, 0.81]
y2=[0.86,0.85,0.853,0.849,0.83]
    #plt.plot(x, y1, 'ro-')
    #plt.plot(x, y2, 'bo-')
    #pl.xlim(-1, 11)  # 限定横轴的范围
    #pl.ylim(-1, 110)  # 限定纵轴的范围
plt.plot(x, y1, marker='o', mec='r', mfc='w',label=u'y=x^2曲线图')
plt.plot(x, y2, marker='*', ms=10,label=u'y=x^3曲线图')
plt.legend()  # 让图例生效
plt.xticks(x, names, rotation=45)
plt.margins(0)
plt.subplots_adjust(bottom=0.15)
plt.xlabel(u"time(s)邻居") #X轴标签
plt.ylabel("RMSE") #Y轴标签
plt.title("A simple plot") #标题

plt.show()
Python之Numpy:二元函数绘制/三维数据可视化/3D第3张
参考文献 推荐工具

免责声明:文章转载自《Python之Numpy:二元函数绘制/三维数据可视化/3D》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇NPOI Word表格参照模板行按记录数量新增行python-pyppeteer模块使用汇总下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

数据可视化之powerBI技巧(二十二)利用这个方法,帮你搞定Power BI"增量刷新"

Power BI的增量刷新功能现在已经对Pro用户开通,但由于种种限制,很多人依然无法使用无这个功能,所以,每一次刷新,都要彻底更新数据集。这对于量级比较大的数据集来说,着实是一件耗费时间的事情。 拿我的亲身经历举个例子,我有一份报表涵盖了客户近3年的销售情况,由于客户的业务流量比较大,数据集的每一次手动刷新都在15分钟左右,而计划刷新更是会延迟到35分钟...

EMQ X+TDengine 搭建 MQTT 物联网可视化平台

物联网数据采集涉及到大量设备接入、海量的时序数据传输,EMQ X MQTT 服务器 与 TDengine 大数据平台的组合技术栈完全能够胜任场景中的海量时间序列监测数据的传输、存储和计算。 数据入库后,往往需要其他方式如数据可视化系统将数据按照规则统计、展现出来,实现数据的监控、指标统计等业务需求,以便充分发挥数据的价值,TDengine 搭配开源软件 G...

全面总结:matlab怎么做漂亮的图

源地址:http://blog.csdn.net/ccxcau/article/details/7362764 MATLAB受到控制界广泛接受的一个重要原因是因为它提供了方便的绘图功能.本章主要介绍2维图形对象的生成函数及图形控制函数的使用方法,还将简单地介绍一 些图形的修饰与标注函数及操作和控制MATLAB各种图形对象的方法. 第一节 图形窗口与坐标系...

数据可视化:python matplotlib小试牛刀

Matplotlib有两个模块: 1) 绘图API:pyplot, 可这样导入import matplotlib.pyplot as plt    2)集成库:pylab, 是matplotlib Scipy Numpy的集成库 import pandas as pd import matplotlib.pyplot as plt from pylab i...

可视化机器学习工具软件的比较分析研究

可视化机器学习工具软件的比较分析研究 Ø 摘要 近年来,随着人脸识别、语音识别等技术的突破性进展,隐藏在它们背后的底层技术也引起工程和研究人员的高度重视,譬如机器学习。然而,机器学习是一个入门门槛相对比较高的技术领域,大部分的工程技术人员和业务人员都聚焦在业务领域的特征提取,算法选择,参数调优和模型验证上,因此一个方便高效的可视化工具,对于降低用户的机器...

Beta分布

Beta分布 beta分布可以看做一个概率的概率分布。首先试验是伯努利试验,它符合二项式分布。而Beta分布是先有一些试验结果,比如说有100个试验结果,其中30次成功,70次失败,然后在这个基础上继续试验,把新的试验结果加到原有结果上,beta分布就是这一系列操作后是某一概率的可能性大小,分布曲线的x轴是概率。beta分布描述的就是我们不知道概率是多少,...