大数据分析11 可视化分析 三维图

数据源

  • 导入包

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

  • 绘制3D折线图

projection设置当前绘图环境为三维

分别设置XYZ三个维度的点


plt.subplot(projection='3d') 

x = (0, 0, 1, 4, 5)

y = (1, 1, 1, 1, 2)

z = (2, 0, 3, 4, 5)

plt.plot(x, y, z)

plt.show()

  • 数据源

frame = pd.read_csv("股票数据.csv", encoding='GBK') # 将数据加载成DataFrame格式

frame = frame.set_index("日期") # 将日期设置为索引

frame.index = pd.to_datetime(frame.index) # 转换为Datetime时间类型,方便后续处理

frame.head(5)

在这里插入图片描述

  • 按年月份分组

results = frame[['收盘价']].groupby([frame.index.year, frame.index.month]).mean()

print(results.index.codes[0]) # 第一个分组条件,即 年

print(results.index.codes[1]) # 第二个分组条件,即 月

print(results['收盘价'])

在这里插入图片描述

  • plot绘制三维折线图

plt.subplot(projection='3d')

plt.plot(results.index.codes[0], results.index.codes[1], results['收盘价'])

plt.show()

在这里插入图片描述

横向是年的变化 纵向是月的变化

  • 按照年月分类汇总多个信息

results = frame.groupby([frame.index.year, frame.index.month]).agg(val1=("收盘价", 'mean'), val2=("换手率", 'mean'), val3=("成交笔数", 'mean'))

results.head(12)

在这里插入图片描述

  • scatter绘制3D散点图

ax = plt.subplot(projection='3d')

ax.scatter(results['val1'], results['val2'], results['val3'])

plt.show()

在这里插入图片描述

  • bar3D柱状图

plt.subplot(projection='3d')

results = frame[['收盘价']].groupby([frame.index.year, frame.index.month]).mean()

plt.bar(results.index.codes[1], results['收盘价'], zs=results.index.codes[0]) # zs表示第三维度,即年份

plt.show()

在这里插入图片描述

  • 设置3D图颜色

plt.subplot(projection='3d')

results = frame[['收盘价']].groupby([frame.index.year, frame.index.month]).mean()

plt.bar(results.index.codes[1], results['收盘价'], zs=results.index.codes[0], color=cm.ScalarMappable().to_rgba(results.index.codes[0]))

plt.show()

  • 绘制3D柱状图bar3d

x y x分别是每个方柱底部点的坐标,dx dy代表每个方块的宽度和厚度,高度用收盘价等统计数据


ax = plt.subplot(projection='3d')

ax.bar3d(x=results.index.codes[1], y=results.index.codes[0], z=0, dx=1, dy=1, dz=results['收盘价'], color=cm.ScalarMappable().to_rgba(results.index.codes[0]))

plt.show()

在这里插入图片描述

Abaqus和LS-DYNA是计算力学与仿真领域广泛应用的有限元分析软件。Abaqus以强大的非线性求解能力著称,LS-DYNA则擅长高效处理瞬态动力学问题。用户有时需要在两者间转换数据以利用各自优势。本文介绍如何使用Python脚本实现Abaqus关键字输入文件(.inp)到LS-DYNA关键字输入文件(.k)的转换。Abaqus的.inp文件包含模型几何、材料属性、边界条件及求解设置等信息;LS-DYNA的.k文件有类似定义,但格式与语法不同。“abaqus2dyna”是一个Python脚本项目,通过解析Abaqus的.inp文件,依据LS-DYNA语法生成对应的.k文件。用户可下载并运行相关代码包,其中通常包含转换脚本、示例输入文件及其他辅助文件。转换过程主要包括以下步骤:1. **解析Abaqus文件**:读取.inp文件,识别如*Solid Section、*Node、*Element等部分,并存储相关信息。2. **映射数据**:将Abaqus的单元类型、材料模型等转换为LS-DYNA认可的格式。3. **生成LS-DYNA文件**:基于解析与映射结果,生成包含几何定义、材料属性、边界条件及求解设置的.k文件。4. **验证与调试**:通过对比分析结果确保转换后模型与原始Abaqus模型尽可能一致。实际应用中,用户可能需要根据具体模型对脚本进行调整或扩展。Python的灵活性使定制化相对简便。由于LS-DYNA支持更多物理现象(如流体动力学、热力耦合等),转换后的模型可提供更广泛的分析选项。总之,“abaqus2dyna”是一个用Python编写的工具,简化了Abaqus与LS-DYNA间输入文件的转换过程。理解两软件的关键字文件格式及Python脚本运行机制,有助于用户有效利用该工具,提升工作效率,并拓展在两个软件间进行复杂模拟的可能性。资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值