博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基于matplotlib绘图
阅读量:5053 次
发布时间:2019-06-12

本文共 3074 字,大约阅读时间需要 10 分钟。

import mathimport numpy as npimport matplotlib.pyplot as pltfrom matplotlib.font_manager import FontPropertiesfrom mpl_toolkits.mplot3d import Axes3Dfont = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)  # 设置字体# 极坐标绘图r = np.arange(0, 2, 0.01)theta = 2 * np.pi * rplt.figure()  plt.subplot(221, polar = True)  # 221位置,极坐标绘图plt.plot(theta, r)   # 绘图plt.grid(True)       # 显示网格plt.title(u'极坐标图', fontproperties=font) # 设置标题# 极坐标绘图theta=np.arange(0,2*np.pi,0.02)  plt.subplot(222, polar=True)   # 222位置,极坐标绘图plt.plot(theta, np.cos(5*theta), '--', lw=2)  # 绘图,虚线,线宽为2plt.plot(theta, 2*np.cos(4*theta), lw=2)     # 绘图,线宽为2plt.rgrids(np.arange(0.5,2,0.5), angle=45)  plt.thetagrids([0,45,90])  plt.title(u'极坐标图', fontproperties=font)# 直角坐标绘图x = np.linspace(0, 3, 500)y1 = np.sin(4 * np.pi * x) * xy2 = np.exp(0.5*x)plt.subplot(223)       # 223位置plt.plot(x,y1,'r',label = 'Line 1')  # 绘制x-y图像plt.plot(x,y2,'b',label = 'Line 2')  # 绘制x-y图像plt.xlim(0, 3)  # 设置横坐标范围为0~3plt.xlabel("x") # x轴的标签plt.ylabel("y") # y轴的标签plt.title(u'直角坐标图', fontproperties=font)  # 设置标题plt.legend() # 标注曲线# 折线图x = np.linspace(0, 2 * np.pi, 10)y1, y2 = np.sin(x), np.cos(x)plt.subplot(224)  # 224位置绘图plt.plot(x, y1, marker='o', mec='r', mfc='w') # 绘制圆形点plt.plot(x, y2, marker='*', ms=10)            # 绘制星形点plt.title(u'折线图', fontproperties=font)  # 设置标题plt.savefig("pic1.png") # 保存图像为pic1.pngplt.show()  # 显示图像# 绘制散点图plt.figure()  x = np.random.random(100)  # 随机生成100个数y = np.random.random(100)  # 随机生成100个数plt.scatter(x,y,c='g',marker=(5,1))  # 绘制绿色五角星散点plt.xlim(0,1)   # 设置x轴范围plt.ylim(0,1)   # 设置y轴范围plt.title(u'散点图', fontproperties=font) # 设置标题plt.savefig("pic2.png") # 保存图像为pic2.pngplt.show()   # 显示图像# 绘制饼图labels=['Class 1','Class 2','Class 3','Class 4','Class 5','Class 6']  #data = [222,242,345,664,454,334] data = 100*np.random.random(6)  # 随机生成6个数x = np.arange(len(data))  #0~5plt.figure()plt.pie(data, labels=labels, autopct='%1.2f%%') #画饼图(数据,数据对应的标签,百分数保留两位小数点)  plt.title(u'饼图', fontproperties=font)   # 设置标题plt.savefig("pic3.png") # 保存图像为pic3.pngplt.show()   # 绘制条形图plt.figure()plt.bar(x, data)  # 绘制条形图plt.plot(x, data, c='r')  # 绘制折线图,颜色为红色plt.title(u'条形图和折线图', fontproperties=font)  # 设置标题 plt.savefig("pic4.png") # 保存图像为pic4.pngplt.show()   # 显示图像# 三维曲线绘图fig = plt.figure()ax = Axes3D(fig)theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)z = np.linspace(-2, 2, 100)r = z**2 + 1x = r * np.sin(theta)y = r * np.cos(theta)ax.plot(x, y, z, label='parametric curve') #绘制三维曲线ax.set_title(u'三维曲线绘图', fontproperties=font)  # 设置标题plt.savefig("pic5.png") # 保存图像为pic5.pngplt.show()  # 显示图像# 三维曲面绘图fig = plt.figure()ax = Axes3D(fig)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)Z = np.sin(R)ax.plot_surface(X, Y, Z, cmap='rainbow') # 绘制曲面ax.set_xlabel('x') # 设置x轴标签ax.set_ylabel('y') # 设置y轴标签ax.set_zlabel('z') # 设置z轴标签ax.set_title(u'三维曲面', fontproperties=font) # 设置图像标题plt.savefig("pic6.png") # 保存图像为pic6.pngplt.show() # 显示图像

pic1.png

pic2.png

pic3.png

pic4.png

pic5.png

pic6.png

 

转载于:https://www.cnblogs.com/liutongqing/p/6891403.html

你可能感兴趣的文章
Vue 框架-01- 入门篇 图文教程
查看>>
多变量微积分笔记24——空间线积分
查看>>
poi操作oracle数据库导出excel文件
查看>>
(转)Intent的基本使用方法总结
查看>>
Windows Phone开发(24):启动器与选择器之发送短信
查看>>
JS截取字符串常用方法
查看>>
Google非官方的Text To Speech和Speech Recognition的API
查看>>
stdext - A C++ STL Extensions Libary
查看>>
进程间通信系列 之 socket套接字及其实例
查看>>
天气预报插件
查看>>
Unity 游戏框架搭建 (十三) 无需继承的单例的模板
查看>>
模块与包
查看>>
apache服务器中设置目录不可访问
查看>>
嵌入式Linux驱动学习之路(十)字符设备驱动-my_led
查看>>
【NOIP模拟】密码
查看>>
java容器---------手工实现Linkedlist 链表
查看>>
three.js 性能优化的几种方法
查看>>
《梦断代码》读书笔记(三)
查看>>
FreeMarker解析json数据
查看>>
Java8 Lambda表达应用 -- 单线程游戏server+异步数据库操作
查看>>