使用python画3D线条
"""用于验证整体趋势正确性"""
#!python3
#-*- coding:utf-8 -*-
import matplotlib as mpl
import matplotlib.pyplot as plt
from pylab import *#中文显示
from mpl_toolkits.mplot3d import Axes3D
import xlrd
"""----------------------------得到支撑数据---------------------------"""
mpl.rcParams['font.sans-serif'] = ['SimHei']#figure字体设定,正常显示中文
mpl.rcParams['axes.unicode_minus']=False#figure符号设定,正常显示负数
zhfont = matplotlib.font_manager.FontProperties(fname="C:\Windows\Fonts\simsun.ttc")#图示字体设置 font = {
"color":"b",
"style":"oblique",
"size":20,
"weight":"bold"
}
#data_t = []
data_x = []
data_y = []
data_z = []
data_1_x = []
data_1_y = []
data_1_z = [] #t_max = 0
#t_min = 0
x_max = 0
x_min = 0
y_max = 0
y_min = 0
z_max = 0
z_min = 0 x_1_max = 0
x_1_min = 0
y_1_max = 0
y_1_min = 0
z_1_max = 0
z_1_min = 0 data = xlrd.open_workbook("点集.xlsx")#打开excel
table = data.sheet_by_name("处理值")#获取名称为处理值的表
table_1 = data.sheet_by_name("理论值")#获取名称为理论值的表 nrows = table.nrows#获取行数
ncols = table.ncols#获取列数
nrows_1 = table_1.nrows#获取行数
ncols_1 = table_1.ncols#获取列数 for i in range(1,nrows):
#data_t.append(table.cell(i,0).value)#逐行读取第一列值,并存至data_t数组中
data_x.append(table.cell(i,1).value)#逐行读取第一列值,并存至data_t数组中
data_y.append(table.cell(i,2).value)#逐行读取第二列值,并存至data_y数组中
data_z.append(table.cell(i,3).value)#逐行读取第三列值,并存至data_z数组中 for i in range(1,nrows_1):
#data_t.append(table.cell(i,0).value)#逐行读取第一列值,并存至data_t数组中
data_1_x.append(table_1.cell(i,1).value)#逐行读取第一列值,并存至data_t数组中
data_1_y.append(table_1.cell(i,2).value)#逐行读取第二列值,并存至data_y数组中
data_1_z.append(table_1.cell(i,3).value)#逐行读取第三列值,并存至data_z数组中 #t_max = max(data_t)
#t_min = min(data_t)
x_max = max(data_x)
x_min = min(data_x)
y_max = max(data_y)
y_min = min(data_y)
z_max = max(data_z)
z_min = min(data_z) x_1_max = max(data_1_x)
x_1_min = min(data_1_x)
y_1_max = max(data_1_y)
y_1_min = min(data_1_y)
z_1_max = max(data_1_z)
z_1_min = min(data_1_z) def if_max(a,b):
if a >= b:
max = a
else:
max = b
return max def if_min(a,b):
if a <= b:
min = a
else:
min = b
return min xmax = if_max(x_max,x_1_max)
xmin = if_min(x_min,x_1_min)
ymax = if_max(y_max,y_1_max)
ymin = if_min(y_min,y_1_min)
zmax = if_max(z_max,z_1_max)
zmin = if_min(z_min,z_1_min) """----------------------------实际处理操作--------------------------""" fig = plt.figure(figsize=(8,4))#创建绘制窗口
ax = fig.gca(projection = "3d")#3d坐标轴
ax.plot(data_x,data_y,data_z,"r-",label="处理曲线",linewidth=0.5)#处理曲线
ax.plot(data_1_x,data_1_y,data_1_z,"g-",label="理论曲线",linewidth=0.5)#理论曲线
ax.set_xlabel("X",fontdict = font)
ax.set_ylabel("Y",fontdict = font)
ax.set_zlabel("Z",fontdict = font)
ax.set_title("趋势比对图")
ax.set_xlim(xmin*0.9,xmax*1.1)
ax.set_ylim(ymin*0.9,ymax*1.1)
ax.set_zlim(zmin*0.9,zmax*1.1)
ax.legend(prop = zhfont)#图示 plt.show()
使用python画3D线条的更多相关文章
- python 画3D的高斯曲线
用python画3D的高斯曲线,我想如果有多个峰怎么画? import numpy as npimport matplotlib.pyplot as pltimport mathimport mpl_ ...
- Python 画3D图像
绘制一副3D图像 draw3D(X,Y,Z, angle) import numpy as np from matplotlib import pyplot as plt from mpl_toolk ...
- 使用python画2D线条
"""用于验证整体趋势正确性,不做关闭操作时保持显示""" #!python3 #-*- coding:utf-8 -*- import m ...
- 沉淀再出发:用python画各种图表
沉淀再出发:用python画各种图表 一.前言 最近需要用python来做一些统计和画图,因此做一些笔记. 二.python画各种图表 2.1.使用turtle来画图 import turtle as ...
- 用python画 pareto front
用python画 pareto front 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2D pf import os import matplotlib.pyplot as plt im ...
- 用Python画如此漂亮的专业插图 ?简直So easy!
本文整理自知乎问答,仅用于学术分享,著作权归作者所有.如有侵权,请联系我删文处理.多多转发,多多学习! 方法一 强烈推荐 Python 的绘图模块 matplotlib: python plottin ...
- WPF用SkewTransform画3D柱状图
WPF用SkewTransform画3D柱状图 SkewTransform主要是对控件实现一种2-D扭曲,具体内容可以查看以下链接: http://msdn.microsoft.com/zh-cn/l ...
- Python绘制3d螺旋曲线图实例代码
Axes3D.plot(xs, ys, *args, **kwargs) 绘制2D或3D数据 参数 描述 xs, ys X轴,Y轴坐标定点 zs Z值,每一个点的值都是1 zdir 绘制2D集合时使用 ...
- 用ChemDraw画3D图的方法
在绘制化学图形的时候,很多的用户都会发现很多的图形都是三维的,这个时候就需要找一款能够绘制3D图形的化学绘图软件.ChemOffice 15.1是最新的化学绘图工具套件,总共有三个组件,其中ChemD ...
随机推荐
- Json串排序
最近遇到个很烦人的问题.我现在做的业务有一部分是把之前app服务端的.net接口转译java接口.但是有些之前的接口,一个接口干上十几件事情,返回的json串长达五六几百行.着实看的就让人头大.但是如 ...
- C# Linq 常用查询操作符
限定操作: 1. All:用来确定是否序列中的所有元素都满足条件 2. Any:用来确定序列是否包含任何元素,有参方式用来确定序列中是否有元素满足条件 3. Contains:方法用来确定序列是否包含 ...
- 微信小程序开发--组件(4)
一.picker-view / picker-view-column <view> <view>{{year}}年{{month}}月{{day}}日</view> ...
- map全局缓存demo
import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import org.apache.log4j.Logger; ...
- csv文件数据导出到mongo数据库
from pymongo import MongoClientimport csv# 创建连接MongoDB数据库函数def connection(): # 1:连接本地MongoDB数据库服务 co ...
- vs2005 打不开resoure view?
原来是破解版 vc助手惹的祸. 解决方法:卸载vc助手或者换一个注册的vc助手
- MediatR-进程内的消息通信框架
MediatR是一款进程内的消息订阅.发布框架,提供了Send方法用于发布到单个处理程序.Publish方法发布到多个处理程序,使用起来非常方便.目前支持 .NET Framework4.5..NET ...
- python 2.7 - 3.5 升级之路 (一) : 准备阶段开发环境 -- pip3, vitualEnv, pycharm
背景 由于之前项目采用的版本是Python2.7, 考虑到Python 2.7 到明年(2020年后将会停止更新),以及为了更好的适应中文和拥抱新的特性.我们决定将其从python 2 升级到最新的 ...
- VUE过滤器的使用 vue 时间格式化
过滤器介绍 官方教程地址:https://cn.vuejs.org/v2/guide/filters.html 过滤器常被用于一些文本格式化 我们可以自定义过滤器,可以实现各种各样的功能. vue时间 ...
- 学习git使用网址
如何将本地项目上传到Github (随梦飞翔) https://www.cnblogs.com/smfx1314/p/8426115.html git学习 GUI https://blog.csdn. ...