"""用于验证整体趋势正确性"""
#!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线条的更多相关文章

  1. python 画3D的高斯曲线

    用python画3D的高斯曲线,我想如果有多个峰怎么画? import numpy as npimport matplotlib.pyplot as pltimport mathimport mpl_ ...

  2. Python 画3D图像

    绘制一副3D图像 draw3D(X,Y,Z, angle) import numpy as np from matplotlib import pyplot as plt from mpl_toolk ...

  3. 使用python画2D线条

    """用于验证整体趋势正确性,不做关闭操作时保持显示""" #!python3 #-*- coding:utf-8 -*- import m ...

  4. 沉淀再出发:用python画各种图表

    沉淀再出发:用python画各种图表 一.前言 最近需要用python来做一些统计和画图,因此做一些笔记. 二.python画各种图表 2.1.使用turtle来画图 import turtle as ...

  5. 用python画 pareto front

    用python画 pareto front 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2D pf import os import matplotlib.pyplot as plt im ...

  6. 用Python画如此漂亮的专业插图 ?简直So easy!

    本文整理自知乎问答,仅用于学术分享,著作权归作者所有.如有侵权,请联系我删文处理.多多转发,多多学习! 方法一 强烈推荐 Python 的绘图模块 matplotlib: python plottin ...

  7. WPF用SkewTransform画3D柱状图

    WPF用SkewTransform画3D柱状图 SkewTransform主要是对控件实现一种2-D扭曲,具体内容可以查看以下链接: http://msdn.microsoft.com/zh-cn/l ...

  8. Python绘制3d螺旋曲线图实例代码

    Axes3D.plot(xs, ys, *args, **kwargs) 绘制2D或3D数据 参数 描述 xs, ys X轴,Y轴坐标定点 zs Z值,每一个点的值都是1 zdir 绘制2D集合时使用 ...

  9. 用ChemDraw画3D图的方法

    在绘制化学图形的时候,很多的用户都会发现很多的图形都是三维的,这个时候就需要找一款能够绘制3D图形的化学绘图软件.ChemOffice 15.1是最新的化学绘图工具套件,总共有三个组件,其中ChemD ...

随机推荐

  1. SpringBoot整合Swagger和Actuator

    前言 本篇文章主要介绍的是SpringBoot整合Swagger(API文档生成框架)和SpringBoot整合Actuator(项目监控)使用教程. SpringBoot整合Swagger 说明:如 ...

  2. 牛逼了,教你用九种语言在JVM上输出HelloWorld

    我们在<深入分析Java的编译原理>中提到过,为了让Java语言具有良好的跨平台能力,Java独具匠心的提供了一种可以在所有平台上都能使用的一种中间代码——字节码(ByteCode). 有 ...

  3. Mac上Ultra Edit的激活

    2016-11-20 增加16.10.0.22破解 去官网下载原载,先运行一次,再在终端里执行下面代码就可以破解完成!printf '\x31\xC0\xFF\xC0\xC3\x90' | dd se ...

  4. NOIP2002 字串变换题解(双向搜索)

    65. [NOIP2002] 字串变换 时间限制:1 s   内存限制:128 MB [问题描述] 已知有两个字串A$, B$及一组字串变换的规则(至多6个规则): A1$ -> B1$ A2$ ...

  5. C#实现某一属性值变化时触发事件

    在我们做工业软件中,经常会遇到要实时监控某一点,在这个点变化时去做一些事情 放入程序里呢,就是要实时监控某一属性的值,当值发生变化时触发事件,其核心就是借助属性的Set方法,来判断当前set的值是否与 ...

  6. 【模拟】(正解树状数组)-校长的问题-C++-计蒜客

    描述 学校中有 n 名学生,学号分别为 1 - n.再一次考试过后,学校按照学生的分数排了一个名次(分数一样,按照名字的字典序排序).你是一名老师,你明天要和校长汇报这次考试的考试情况,校长询问的方式 ...

  7. error: 'commit' is not possible because you have unmerged files.

    解决方案: 1.把修改的文件add下,如:git add bidder_mod/src/common/dragon_bidder_data.cc2.git commit

  8. 使用java语言基于SMTP协议手写邮件客户端

    使用java语言基于SMTP协议手写邮件客户端 1. 说明 电子邮件是互联网上常见的应用,他是互联网早期的产品,直至今日依然受到广大用户的喜爱(在中国可能因为文化背景不同,电子邮件只在办公的时候常用) ...

  9. 开源一个好用的nodejs访问mysql类库

    一.背景问题 自nodejs诞生以来出现了一大批的web框架如express koa2 egg等等,前端可以不再依赖后端可以自己控制服务端的逻辑.原来的后端开发同学的阵地前端如今同样也写的风生水起,撸 ...

  10. 个人永久性免费-Excel催化剂功能第29波-追加中国特色的中文相关自定义函数

    中文世界里,有那么几个需求在原生Excel里没提供,例如财务部的数字转大写金额,文字转拼音等,在其他插件里,大部分是以功能区菜单按钮的方式提供.Excel催化剂认为,最佳的使用方式乃是自定义函数的方式 ...