2018.10.23

2018.10.23

matplotlib

今天在捣鼓matplotlib,把之前的内存分析数据,捣鼓成图片。目前来看效果还可以。
记录一些matplotlib学习经验
https://www.cnblogs.com/duye/p/8862666.html

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

matplotlib.rcParams["font.family"] = "SimHei"  # 支持中文
matplotlib.rcParams["axes.unicode_minus"] = False  # 正常显示负号

# 隐藏上右的线
def HideTopAndRight():
	ax = plt.gca()
	ax.spines['right'].set_color('none')

# 居中
def Center():
	ax = plt.gca()
	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))

# 画图
def DrawGraph(dctDrawData = None):
	if not dctDrawData:
		raise Exception("No Data!!")
	plt.figure()
	iLen = len(dctDrawData)
	iPos = 0
	for sTypeName, dctData in dctDrawData.iteritems():
		iPos += 1
		pGraph = plt.subplot(iLen, 1, iPos)  # iLen * 1 中第iPos个
		plt.sca(pGraph)  # 选中该图
		for sDataLabel, dctShowData in dctData.iteritems():
			lstXData = dctShowData.get("XData", [])
			lstYData = dctShowData.get("YData", [])
			HideTopAndRight()
			if len(pGraph.get_xticklabels()) > 15:  # label数量大于15竖着显示标签
				for tick in pGraph.get_xticklabels():
					tick.set_roration(270)
			plt.plot(lstXData, lstYData, label = dctShowData.get("Label", "Label"))
			plt.legend(loc='upper right')  # 标签位置
			plt.xlabel("X")
			plt.ylabel("Y")
	plt.show()  # 显示图片

# 同一副图显示多种情况图,有可能线条会折来折去,很不美观,如X轴的类型不一样,但都画在了一起
def ChangeDataSort(XData, YData, lstLabel):
	# XData X轴显示数据,YData Y轴显示数据 lstLabel X轴所有标签集合
	iFindPos = 0  # 从XData首位开始搜索
	for iPos, sLabel in enumerate(lstLabel):
		if sLabel in XData:
			iXDataPos = XData.index(sLabel)
			XData[iFindPos], XData[iXDataPos] = XData[iXDataPos], XData[iFindPos]  # 交换X轴位置
			YData[iFindPos], YData[iXDataPos] = YData[iXDataPos], YData[iFindPos]  # 同时交换对应Y轴位置
			iFindPos += 1
	return XData, YData

数据格式化输出

def Format(lstRowData, lstHeadData):
	BORDER1 = " | "
	BORDER2 = "="
	lstTempRowData = lstRowData[:]
	lstTempRowData.append(lstHeadData)
	lstCols = zip(*lstTempRowData)  # N 列
	lstColWidth = []  # 每列宽度
	for col in lstCols:
		iWidth = max([len(str(s)) for s in col])
		lstColWidth.append(iWidth)

	lstElement = []  
	for iWidth in lstColWidth:
		lstElement.append(BORDER2 * iWidth)
	sBorder = BORDER1.join(lstElement)  # "|=====|"分界线

	lstElement = []
	for sHead, iWidth in zip(lstHeadData, lstColWidth):
		lstElement.append(sHead.rjust(iWidth))  # 按iWidth右对齐,用空格补齐
	sContent = BORDER1.join(lstElement)  # 标题

	yield sContent

	yield sBorder

	for tRow in lstRowData:
		lstElement = []
		for sDesc, iWidth in zip(tRow, lstColWidth):
			lstElement.append(str(sDesc).rjust(iWidth))
		sContent = BORDER1.join(lstElement)
		yield sContent





# 将数据格式输出的方法
def OutputFormat(lstRowData, lstHeadData, f = None):
	if f is none:
		f = sys.stdout
	for s in Format(lstRowData, lstHeadData):
		f.write(s)
		f.write(os.linesep)
	f.flush()

#举例
lstRowData = [("小明", "8岁"), ("小红", "7岁")]
lstHeadData = ["Name", "Age"]
OutputFormat(lstRowData, lstHeadData)
'''
Name| Age
==========
小明|  8岁
小红|  7岁
'''
当前,全球经济格局深刻调整,数字浪潮席卷各行各业,智能物流作为现代物流发展的必然趋势和关键支撑,正迎来前所未有的发展机遇。以人工智能、物联网、大数据、云计算、区块链等前沿信息技术的快速迭代与深度融合为驱动,智能物流不再是传统物流的简单技术叠加,而是正在经历一场从自动向智能、从被动响应向主动预测、从信息孤岛向全面互联的深刻变革。展望2025年,智能物流系统将不再局限于提升效率、降低成本的基本目标,而是要构建一个感知更全面、决策更精准、执行更高效、协同更顺畅的智慧运行体系。这要求我们必须超越传统思维定式,以系统、前瞻性的视角,全面规划和实施智能物流系统的建设。本实施方案正是基于对行业发展趋势的深刻洞察和对未来需求的精准把握而制定。我们的核心目标在于:通过构建一个集成了先进感知技术、大数据分析引擎、智能决策算法和高效协同平台的综合智能物流系统,实现物流全链路的可视、透明和智能管理。这不仅是技术层面的革新,更是管理模式和服务能力的全面提升。本方案旨在明确系统建设的战略方向、关键任务、技术路径和实施步骤,确保通过系统部署,有效应对日益复杂的供应链环境,提升整体物流韧性,优资源配置效率,降低运营成本,并最终为客户创造更卓越的价体验。我们致力于通过本方案的实施,引领智能物流迈向更高水平,为构建现代经济体系、推动高质量发展提供强有力的物流保障。
电源题电赛单相并网离网软件硬件锁相环单极性双极性调制等代码及仿真环路计算资料+原理图PCB内容概要:本文档是一份关于电力电子与能源系统仿真研究的技术资料集合,涵盖单相并网/离网系统、软件与硬件锁相环设计、单极性与双极性调制技术、虚拟同步机控制建模、P2G-CCS耦合系统、微电网优调度、光伏风电联合运行、储能配置及需求响应等多个电力系统核心主题。文档提供了大量基于Matlab/Simulink的代码实现与仿真模型,包括LLC谐振变换器小信号分析、永磁同步电机控制、DC-AC变换器设计、光伏阵列故障仿真、直流微电网建模等,并附有原理图与PCB设计资源。同时整合了智能优算法(如遗传算法、粒子群、灰狼优器)、机器学习模型(如LSTM、CNN-GRU-Attention)在负荷预测、故障诊断、路径规划等领域的应用案例,形成一个跨学科的科研资源包。; 适合人群:电气工程、自动、能源系统及相关专业的研究生、科研人员以及从事电力电子、微电网、新能源控制方向的工程师;具备Matlab/Simulink编程基础和一定电力系统理论知识者更佳。; 使用场景及目标:① 支持电赛或科研项目中对并网逆变器、锁相环、调制策略的设计与验证;② 用于复现高水平论文(如EI/SCI)中的优调度、控制算法与仿真模型;③ 辅助开展微电网能量管理、储能配置、需求响应策略等课题的研究与代码开发;④ 提供可直接调用的算法模板与仿真平台,提升科研效率。; 阅读建议:建议按照文档结构逐步浏览,优先下载并整理网盘中的完整资源包,结合具体研究方向选取对应代码与模型进行调试与二次开发;对于复杂算法(如NSGA-II、ADMM、MPC),应配合文献理解其数学原理后再实施仿真;关注其中“论文复现”类内容以提升学术研究规范性与技术深度。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值