使用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 ...
随机推荐
- java 学习之路第一节
一.安装mysql驱动:http://mvnrepository.com/search?q=mysql-conn 二.看数据库中有什么表安装:navicat for MySQL 文件类写数据库查询: ...
- Shiro中@RequiresAuthentication等等注解介绍
使用前请先开启Shiro的controller层注解,如果已经设置请下滑绕过 要在spring-mvc.xml中写. <!--下面的用于开启shiro的权限注解--> <bean c ...
- spark 源码分析之十三 -- SerializerManager剖析
对SerializerManager的说明: 它是为各种Spark组件配置序列化,压缩和加密的组件,包括自动选择用于shuffle的Serializer.spark中的数据在network IO 或 ...
- GitHub代码阅读神器,你值有拥有!
(题图:from github) Github作为全球最大的程序员聚集地,已经成为学习开发技能的绝佳伴侣(如果你是程序员,但你还没有账户的话,这里建议你去signup,毕竟能增加成长的机会,不能错过 ...
- android_sdcard读写(三)
这次来个稍微复杂点的. package cn.com.sxp;import android.app.Activity;import android.app.ProgressDialog;import ...
- Java的Hook线程及捕获线程执行异常
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.f ...
- Spring Cloud学习(一):Eureka服务注册与发现
1.Eureka是什么 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的. Eureka ...
- 【HDU - 1560】DNA sequence (dfs+回溯)
DNA sequence 直接中文了 题目描述 21世纪是生物科技飞速发展的时代.我们都知道基因是由DNA组成的,而DNA的基本组成单位是A,C,G,T.在现代生物分子计算中,如何找到DNA之间的最长 ...
- 反⑨baka拖更大队:临时约法
本团队中将不时发起团队讨论报道⑨baka无良~ 某无良⑨baka一直拖更引起广大人民群众不满 文文新闻:https://www.luogu.org/discuss/show/52654 反⑨baka的 ...
- js的事件冒泡机制
js的事件冒泡机制呢,就是一个DOM树,一级一级向上冒的过程,最终是到document这个根节点这里.js的事件冒泡机制,就像是一个水泡在水底下,冒泡到水面的过程. 摘自醉清玄