Python-从excel表中读取数据绘制三维散点图

979 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情

这几天在修改论文的数据可视化部分,需要将建模的三维数据点进行可视化,数据存储在数据库中,数据字段包含坐标x,y,z和所属分类。我就将数据导出为excel表,然后利用python中的两个库进行数据读取以及数据的可视化,具体流程如下:

一、读取excel表数据

安装openpyxl库

pip install openpyxl

导入load_workbook

from openpyxl import load_workbook

构建根据.xlsx文件创建load_workbook对象

  • 将表单设为只读模式(data_only=True
xlsx_path_f_interface ='./perth_basin/alldata.xlsx' wb = load_workbook(xlsx_path_f_interface,data_only=True)

获取sheet表单的名称,通过表单名称,获取表单对象

print(wb.sheetnames) # ['planar', 'f_interface', 'interface'] sheet_f_interface = wb['f_interface']

根据获取单元格对象以及单元格内容

  • 通过行列号获取指定单元对象,然后通过value属性获取单元格内容

image.png

二、matplotlib绘制三维散点图

安装matplotlib 库

pip install matplotlib

导入pyplot对象

import matplotlib.pyplot as plt

设置中文字符显示

  • 当图表中有中文字符时,会出现中文字符无法显示的问题,需要进行如下代码设置:
  • 我是参考这篇博客解决的,它还提供了其它解决方案,有需要的可以去博客仔细阅读 image.png

创建绘制区域

添加散点图数据

  • 注意每个维度的数据类型为numpy.array
  • c 表示数据点颜色
  • label表示图例文字

image.png

设置散点图标题和坐标轴名称

image.png

设置图例位置,显示图片

  • bbox_to_anchorloc用于控制图例的位置
plt.legend(plt.legend(bbox_to_anchor=(1.3, 1.1),loc='center right')) plt.show()
  • 显示结果如下图:

image.png