Python绘制图形之Matplotllib绘图

Python绘制图形之Matplotllib绘图

目录

Python绘制图形之Matplotllib绘图

 

一、绘制二维函数图

1.1 绘制 f(x)=sin2(x−2)e−x2

1.2 、绘制 sigmoid函数图: f(x)=11+e−x

 

1.3、绘制正态分布图

 

二、绘制三维图

2.1 绘制三维螺旋图

2.2 绘制三维线性点图

2.3 绘制三维柱状图

 

2.4 绘制三维 鞍部 曲面图

 

2.5 绘制山区图 f(x,y)=xe−x2−y2

 

2.6 三维动态图


一、绘制二维函数图

1.1 绘制 f(x)=sin2(x−2)e−x2

函数图

代码1:
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["font.sans-serif"]=['SimHei']  # 用于正常显示中文标签
plt.rcParams['axes.unicode_minus']=False    # 用来正常显示负号x = np.linspace(-2.5,2,256,endpoint=True)   # 绘制X轴(-2.5,2)的图像f =(np.sin(x-2))**2*(np.e)**(-x**2)         # y值plt.plot(x,f,"g-",lw=2.5,label="f(x)")
plt.title('f(x) = sin^2(x-2)e^{-x^2}函数图')
plt.legend()
plt.show()_______________________________________________
代码2(对于复杂函数,我们可以将其拆分成多单一函数)分析:sin^2(x-2)e^{-x^2}分解:sin(x1)*sin(x1)*e^x2其中:x1 = x-2;    x2 = -x^2
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签 
plt.rcParams['axes.unicode_minus'] = False    # 用来正常显示负号 x = np.linspace(0, 2,300, endpoint=True) 
x_1 = x-2
S_1 = np.sin(x_1)
S_2 = S_1**2E_1 = -x**2
E_2 = np.exp(E_1)
f = S_2*E_2    
plt.figure(figsize = ((8,6)))     # 设置画布大小(可省略)plt.plot(x,f,'b-',lw=2.5,label='f(x)=sin^2(x-2)e^{-x^2}') plt.legend()                      # 显示图例 
plt.show()

 

这里写图片描述

 

1.2 、绘制 sigmoid函数图: f(x)=11+e−x

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签 
plt.rcParams['axes.unicode_minus'] = False    # 用来正常显示负号 x = np.linspace(-10, 10,300, endpoint=True) E_1 = -x
E_2 = np.exp(E_1)
f = 1/(1+E_2)    
plt.figure(figsize = ((8,6)))     # 设置画布大小(可省略)
ax1 = plt.subplot(111)plt.plot(x,f,'b-',lw=2.5,label='f(x)=\\frac{1}{1+e^{-x}}') plt.legend()                      # 显示图例 
ax1.grid(True)                    # 显示网格 
plt.show()

这里写图片描述

 

1.3、绘制正态分布图

其中 s 为 σ, m为 μ

 

import math
import matplotlib.pyplot as plt
import numpy as np
def gd(x,m,s):                       #其中s为sigma ,m为 muleft=1/(math.sqrt(2*math.pi)*s)right=math.exp(-math.pow(x-m,2)/(2*math.pow(s,2)))return left*right
def showfigure():plt.figure(figsize = ((8,6)))   #设置画布大小(可省略)x=np.arange(-4,5,0.1)           #绘制x(-4,5)y=[]for i in x:y.append(gd(i,0,1))         #m为0,s为1plt.plot(x,y) plt.xlim(-4.0,5.0)plt.ylim(-0.2,0.5)ax = plt.gca()ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')ax.xaxis.set_ticks_position('bottom')ax.spines['bottom'].set_position(('data',0))ax.yaxis.set_ticks_position('left')ax.spines['left'].set_position(('data',0))#设置并添加标签label_f1 = "$\mu=0,\ \sigma=1$"plt.text(2.5,0.3,label_f1,fontsize=15,verticalalignment="top",horizontalalignment="left")label_f2 = r"$f(x)=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x-\mu)^2}{2\sigma^2})$"plt.text(1.5,0.4,label_f2,fontsize=15,verticalalignment="top",horizontalalignment="left")plt.show()def main():showfigure()gd()
main()

 

这里写图片描述

 

二、绘制三维图

2.1 绘制三维螺旋图

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as pltfig = plt.figure(figsize = ((8,6)))
ax = fig.add_subplot(1,1,1,projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 500) # theta旋转角从-4pi到4pi,相当于两圈
z = np.linspace(0, 2, 500)  # z轴从下到上,从-2到2之间画100个点
r = z                       # 半径设置为z大小
x = r * np.sin(theta)       # x和y画圆
y = r * np.cos(theta)       # x和y画圆
ax.plot(x, y, z, label='curve')
ax.legend()                 # 图例plt.show()

 

这里写图片描述

 

2.2 绘制三维线性点图

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as pltfig = plt.figure()
ax = fig.add_subplot(1,1,1,projection='3d')
x = np.linspace(0, 5, 10)      # 在0-5之间生成10个点的向量
y = np.linspace(0, 5, 10)      # 在0-5之间生成10个点的向量
z1 = x
z2 = 2*x
z3 = 3*x
ax.scatter(xx, yy, zz1, c='red', marker='o')   # o型符号
ax.scatter(xx, yy, zz2, c='green', marker='^') # 三角型符号
ax.scatter(xx, yy, zz3, c='black', marker='*') # 星型符号
ax.legend()                                    # 显示图例  plt.show()

 

这里写图片描述

 

2.3 绘制三维柱状图

import random
import matplotlib as mpl
import matplotlib.dates as mdates
from mpl_toolkits.mplot3d import Axes3D
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签 
plt.rcParams['axes.unicode_minus'] = False    # 用来正常显示负号 mpl.rcParams['font.size'] = 10fig = plt.figure(figsize=((8,6)))
ax = fig.add_subplot(111, projection='3d')
for z in [2011, 2012, 2013, 2014]:xs = range(1,13)ys = 1000 * np.random.rand(12)color = plt.cm.Set2(random.choice(range(plt.cm.Set2.N)))ax.bar(xs, ys, zs=z, zdir='y', color=color, alpha=0.8)ax.xaxis.set_major_locator(mpl.ticker.FixedLocator(xs))
ax.yaxis.set_major_locator(mpl.ticker.FixedLocator(ys))
ax.set_xlabel('月份')
ax.set_ylabel('年份')
ax.set_zlabel('销售额 ')
plt.show()

 

这里写图片描述

 

2.4 绘制三维 鞍部 曲面图

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cmn_angles = 1000                #曲面衔接角度(平滑度)
n_radii = 20                   #鞍部半径(1:锐角,20:平滑角)
fig = plt.figure(figsize=((10,10)))
radii = np.linspace(0.125, 1.0, n_radii)
angles = np.linspace(0, 2 * np.pi, n_angles, endpoint=False)
angles = np.repeat(angles[..., np.newaxis], n_radii, axis=1)x = np.append(0, (radii * np.cos(angles)).flatten())
y = np.append(0, (radii * np.sin(angles)).flatten())z = np.sin(-x * y)
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_trisurf(x, y, z,   cmap=cm.jet,    #曲面颜色linewidth=0.2)

 

这里写图片描述

 

2.5 绘制山区图 f(x,y)=xe−x2−y2

import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3dx,y = np.mgrid[-2:2:100j,-2:2:100j] #100j为设置曲面平滑度
z=x*np.exp(-x**2-y**2)
ax = plt.subplot(111, projection='3d')
ax.set_title('山区图');
ax.plot_surface(x,y,z,rstride=2, cstride=1, cmap=cm.jet)ax.set_xlabel('X')                #设置坐标轴标签
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()

 

这里写图片描述

 

2.6 三维动态图

from pyecharts import Bar3D
bar3d = Bar3D("3D 柱状图示例", width=1200, height=600)x_axis = ["12a", "1a", "2a", "3a", "4a", "5a", "6a", "7a", "8a", "9a", "10a", "11a","12p", "1p", "2p", "3p", "4p", "5p", "6p", "7p", "8p", "9p", "10p", "11p"]
y_axis = [ "Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Sunday"]data = [[0, 0, 5], [0, 1, 1], [0, 2, 0], [0, 3, 0], [0, 4, 0], [0, 5, 0],[0, 6, 0], [0, 7, 0], [0, 8, 0], [0, 9, 0], [0, 10, 0], [0, 11, 2],[0, 12, 4], [0, 13, 1], [0, 14, 1], [0, 15, 3], [0, 16, 4], [0, 17, 6],[0, 18, 4], [0, 19, 4], [0, 20, 3], [0, 21, 3], [0, 22, 2], [0, 23, 5],[1, 0, 7], [1, 1, 0], [1, 2, 0], [1, 3, 0], [1, 4, 0], [1, 5, 0],[1, 6, 0], [1, 7, 0], [1, 8, 0], [1, 9, 0], [1, 10, 5], [1, 11, 2],[1, 12, 2], [1, 13, 6], [1, 14, 9], [1, 15, 11], [1, 16, 6], [1, 17, 7],[1, 18, 8], [1, 19, 12], [1, 20, 5], [1, 21, 5], [1, 22, 7], [1, 23, 2],[2, 0, 1], [2, 1, 1], [2, 2, 0], [2, 3, 0], [2, 4, 0], [2, 5, 0],[2, 6, 0], [2, 7, 0], [2, 8, 0], [2, 9, 0], [2, 10, 3], [2, 11, 2],[2, 12, 1], [2, 13, 9], [2, 14, 8], [2, 15, 10], [2, 16, 6], [2, 17, 5],[2, 18, 5], [2, 19, 5], [2, 20, 7], [2, 21, 4], [2, 22, 2], [2, 23, 4],[3, 0, 7], [3, 1, 3], [3, 2, 0], [3, 3, 0], [3, 4, 0], [3, 5, 0],[3, 6, 0], [3, 7, 0], [3, 8, 1], [3, 9, 0], [3, 10, 5], [3, 11, 4],[3, 12, 7], [3, 13, 14], [3, 14, 13], [3, 15, 12], [3, 16, 9], [3, 17, 5],[3, 18, 5], [3, 19, 10], [3, 20, 6], [3, 21, 4], [3, 22, 4], [3, 23, 1],[4, 0, 1], [4, 1, 3], [4, 2, 0], [4, 3, 0], [4, 4, 0], [4, 5, 1],[4, 6, 0], [4, 7, 0], [4, 8, 0], [4, 9, 2], [4, 10, 4], [4, 11, 4],[4, 12, 2], [4, 13, 4], [4, 14, 4], [4, 15, 14], [4, 16, 12], [4, 17, 1],[4, 18, 8], [4, 19, 5], [4, 20, 3], [4, 21, 7], [4, 22, 3], [4, 23, 0],[5, 0, 2], [5, 1, 1], [5, 2, 0], [5, 3, 3], [5, 4, 0], [5, 5, 0],[5, 6, 0], [5, 7, 0], [5, 8, 2], [5, 9, 0], [5, 10, 4], [5, 11, 1],[5, 12, 5], [5, 13, 10], [5, 14, 5], [5, 15, 7], [5, 16, 11], [5, 17, 6],[5, 18, 0], [5, 19, 5], [5, 20, 3], [5, 21, 4], [5, 22, 2], [5, 23, 0],[6, 0, 1], [6, 1, 0], [6, 2, 0], [6, 3, 0], [6, 4, 0], [6, 5, 0],[6, 6, 0], [6, 7, 0], [6, 8, 0], [6, 9, 0], [6, 10, 1], [6, 11, 0],[6, 12, 2], [6, 13, 1], [6, 14, 3], [6, 15, 4], [6, 16, 0], [6, 17, 0],[6, 18, 0], [6, 19, 0], [6, 20, 1], [6, 21, 2], [6, 22, 2], [6, 23, 6]]
range_color = ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf','#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
bar3d.add("", x_axis, y_axis, [[d[1], d[0], d[2]] for d in data],is_visualmap=True, visual_range=[0, 20],visual_range_color=range_color, grid3d_width=200, grid3d_depth=80,grid3d_shading='lambert',             #柱状图显示更真实(可省略)is_grid3d_rotate=True,                #自动旋转(可省略)grid3d_rotate_speed=10)               #旋转速度(可省略)
bar3d.render()

这里写图片描述
 

更多精彩博文请关注:https://blog.csdn.net/yang13563758128

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新发现罕见生命密码:基因读取的另一套代码

来源:生物通令人震惊但让人困惑的是,我们所知的生命密码使用了61个不同的三字母密码子,只产生了20个氨基酸,这意味着许多密码子被用来描述同一件事。新的研究表明,大脑和睾丸似乎非常适应使用多种不同种类的遗传密码来…

《自然-机器智能》:神经形态技术可使大型深度学习网络节能16倍

来源: 学术头条受生物大脑机制的启发,研究人员一直在提高人工神经网络的性能效率和计算要求。一项新的研究表明,对于大型深度学习网络,神经形态技术的能源效率有望达到其他人工智能系统的 16 倍。格拉茨技术大学(TU Gr…

康奈尔计算计学院院长Kavita Bala:「元宇宙」算什么?上帝之眼或将通过 AI 诞生...

来源:AI科技评论编译:王玥编辑:陈彩娴在今年斯坦福HAI实验室的春季会议上,康奈尔计算机学院院长Kavita Bala以“视觉外观和理解:从微米分辨率到世界级”为题,就她在数字化现实世界方面的研究进行了精彩的演…

王浩:哥德尔思想概说

来源:本文原文刊于《科学文化评论》2004年第6期撰文:王浩翻译:邢滔滔译者按本文选自王浩最后一本著作A Logical Journey—From Gdel to Philosophy (Cambridge: The MIT Press, 1996)的引言部分,有删节,题目…

八大排序:Java实现八大排序及算法复杂度分析

目录 QUESTION:八大排序:Java实现八大排序及算法复杂度分析 ANSWER: 一:冒泡排序 1.算法分析 2.时间复杂度分析 3.代码 二:选择排序 1.算法分析 2.时间复杂度分析 3.代码 三:插入排序 1.算法分析 2.时间复杂度分析 3.代码 四&a…

网友:看完Jeff Dean新论文,我再也不相信大厂的鬼话了

来源:数学中国文字:乔叶配图 :乔叶排版:余弟宗璇「我相信他们得到的数字是准确的,他们确实做了工作并得到了结果…… 但这样真的好吗?」一名机器学习研究者的灵魂发问,今天成为了整个社区最热门…

CV未来在这68张图上?Google Brain深扒ImageNet:顶级模型全都预测失败

来源:新智元编辑:LRS【新智元导读】ImageNet的标签问题一直为人诟病,最近Google Brain全面分析了基准内遗留的历史问题,并找出了所有顶级模型全都预测失败的68张图片,或许未来CV想取得突破,先得攻破这68关&…

谷歌夺回AI画语权,机器的想象力达到全新高度,网友:DALL·E 2诞生一个月就过时了?...

来源:量子位在让AI搞创作这件事上,谷歌和OpenAI正面刚起来了。这不,震惊全网的DALLE 2才新鲜出炉一个月,谷歌就派出名为Imagen的选手来打擂台。直接上图对比,左边是谷歌Imagen选手眼中的“猫猫绊倒人类雕像”&#xff…

Linux安装MySQL的完整步骤并有关MySQL8.0版本的问题方法

目录 QUESTION:Linux安装MySQL的完整步骤? ANSWER: 一:使用wget 直接下载 二:安转软件源,将platform-and-version-specific-package-name 替换为你下载的rpm名 三:安装mysql服务端 四:首先启动mysql 五&#x…

研究遭质疑,Jeff Dean回应:我们本就不是为得到新SOTA,成本计算也搞错了

来源:机器之心编辑:杜伟、陈萍对于 Jeff Dean 的回复,你认同吗?昨日,整个社区最热门的话题无外乎是 reddit 上一名机器学习研究者对谷歌 AI 负责人 Jeff Dean 参与论文的质疑。这篇论文是《An Evolutionary Approach t…

全脑地图:单个记忆被拆分存储在多个相连的大脑区域

来源:神经生物学根据一项创新的脑域映射研究,单一的记忆被存储在许多连接的大脑区域。创新的脑成像研究表明,“记忆印记”,编码记忆的神经元集合,广泛分布,包括在以前没有意识到的区域。麻省理工学院皮考尔…

李德毅 | 新一代人工智能如何从传统人工智能中脱颖而出

来源:图灵人工智能 作者:李德毅 中国工程院院士、CAAI名誉理事长、主线科技首席科学家2021年4月10日,“吴文俊人工智能科学技术奖”十周年颁奖盛典在北京举办。颁奖典礼上,中国工程院院士、中国人工智能学会名誉理事长李德毅荣获…

【强基固本】现在的人工智能是否走上了数学的极端?

来源:知乎—谢凌曦地址:https://www.zhihu.com/question/519393525/answer/2430233113“强基固本,行稳致远”,科学研究离不开理论基础,人工智能学科更是需要数学、物理、神经科学等基础学科提供有力支撑,为…

智源发布线虫生命模型,超级人脑有望在未来15-30年实现

出品:CSDN(ID:CSDNnews)作者:田玮靖 5月31日,作为国际性、权威性、专业性和前瞻性的“内行AI盛会”——智源大会开幕,会上,智源研究院发布了其最新研究成果线虫生命模型——天宝…

Aquarium华人CEO分享:机器学习在自动驾驶中落地,核心不是模型,是管道

来源:AI科技评论作者:Peter Gao编译:刘冰一编辑:陈彩娴作者 Peter Gao 是 Aquarium 公司的联合创始人和首席执行官(CEO),Aquarium 公司建立了寻找和修复深度学习数据集问题的工具。在 Aquarium …

数据科学中的 10 个重要概念和图表的含义

大数据文摘转载自数据派THU来源:DeepHub IMBA“当算法给你一条曲线时,一定要知道这个曲线的含义!”1、偏差-方差权衡这是一个总是在机器学习最重要理论中名列前茅的概念。机器学习中的几乎所有算法(包括深度学习)都努力…

Java总结:Spring5框架(1)

Spring5框架(1) 一:什么是Spring? Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而…

专访|79岁图灵奖获得者迈克尔·斯通布雷克谈“数字经济”与“元宇宙”

迈克尔斯通布雷克(Michael Stonebraker)被誉为“世界上最重要的数据库专家之一”,是数据库领域的第4位图灵奖得主来源:数据观撰稿:黄玉叶编辑:蒲蒲如果说硅是未来的新型石油,那么数据就好比新型…

Windows下如何搭建Gradle环境?

QUESTION:Windows下如何搭建Gradle环境? 目录 QUESTION:Windows下如何搭建Gradle环境? ANSWER: 1.开发环境 2.安装步骤 (1)下载最新的Gradle压缩包 (2)解压下载的压缩包到指定位置,比如: (3)配置环境变量 3.测试配置是否成功 ANSWER: 1.开发环境…

2029年会实现通用人工智能吗?Gary Marcus「叫板」马斯克:赌十万美元如何?

来源:AI科技评论作者:王玥编辑:陈彩娴5月30日,世界级红人埃隆马斯克(Elon Musk)发了一条推文,称:2029年是关键的一年,如果那时候我们还没有实现通用人工智能(…