一、绘制不同类别特征均值标准差直方图

2023-11-10

1.绘制不同类别植被指数均值标准差直方图

#数据类型:不同类别样本植被指数
#实验目的:1.计算不同类别各指数的均值和标准差
#          1.1读取表格中的数据
#          1.2预处理数据:提取不同类别指数,归一化指数,计算均值标准差
#          1.3画图
import pandas as pd
import numpy as np
import csv
from matplotlib import pyplot as plt

1.1从excel种读取数据

#读取数据
JOVIs = pd.read_csv(r'G:\数据恢复\2021工作\0325_野外实验设计\4_第二届数字地球大会\3_实验处理\9_出图V2\2_植被指数\Fieldfeature0416.csv')
# JOVIs = pd.read_csv(r'G:\数据恢复\2021工作\0325_野外实验设计\4_第二届数字地球大会\3_实验处理\9_出图V2\2_植被指数\feature0325.csv')

1.2数据预处理(不同类别归一化均值标准差)

#按levelnew列(0,1值)提取不同类别数据
#0
JOVIs_healthy = JOVIs[JOVIs['levelnew']==0].iloc[:,4:10]
#按列明重新排列数据
JOVIs_healthy = JOVIs_healthy[['PSRI2','REDSI','DSWI1','NDVI','NDVIre2','TVI']]
#每列数据归一化
JOVIs_healthy_NOR = JOVIs_healthy.apply(lambda x: (x - np.min(x)) / (np.max(x) - np.min(x)))
#求每列均值和标准差
JOVIs_healthy_mean = JOVIs_healthy_NOR.mean()
JOVIs_healthy_std = JOVIs_healthy_NOR.std()
# print(JOVIs_healthy_mean)
# print(JOVIs_healthy_std)

#1
JOVIs_disease = JOVIs[JOVIs['levelnew']==1].iloc[:,4:10]
#按列明重新排列数据
JOVIs_disease = JOVIs_disease[['PSRI2','REDSI','DSWI1','NDVI','NDVIre2','TVI']]
#每列数据归一化
JOVIs_disease_NOR = JOVIs_disease.apply(lambda x: (x - np.min(x)) / (np.max(x) - np.min(x)))
#求每列均值和标准差
JOVIs_disease_mean = JOVIs_disease_NOR.mean()
JOVIs_disease_std = JOVIs_disease_NOR.std()
# print(JOVIs_disease_mean)
# print(JOVIs_disease_std)

1.3画图

#统一设置图片字体
plt.rc('font',family='Palatino Linotype') #Times New Roman
#定义柱状图位置
#location 1
n1 = 1  # This is our first dataset (out of 2)
t = 2 # Number of datasets
d = 6 # Number of sets of bars
w = 0.8 # Width of each bar
store1_x = [t*element + (1-w/2)*n1 for element in range(d)]

#Location 2
n2 = 2  # This is our second dataset (out of 2)
t = 2 # Number of datasets
d = 6 # Number of sets of bars
w = 0.8 # Width of each bar
store2_x = [t*element + (1+w/2)*n1 for element in range(d)]
ax=plt.subplot()
#画柱状图
plt.bar(store1_x,JOVIs_healthy_mean,yerr=JOVIs_healthy_std/2,capsize=5)
plt.bar(store2_x,JOVIs_disease_mean,yerr=JOVIs_disease_std/2,capsize=5)
#设置图例内容,位置,透明显示
plt.legend(['Healthy','Disease'],loc="upper left").get_frame().set_linewidth(0.0)
#XY轴的刻度及标签
ax.set_xticks([1,3,5,7,9,11])
VIs_name = ["PSRI", "REDSI", "DSWI", "NDVI", "NDVIre", "TVI"]
ax.set_xticklabels(VIs_name)
ax.set_yticks([0,0.2,0.4,0.6,0.8,1])
#去除x轴刻度,Y轴刻度向内
ax.tick_params(axis='x', which='both', length=0,direction='in')#
ax.tick_params(axis='y', which='both', direction='in',width=1)#
#设置XY轴名称,字体大小,加粗
plt.xlabel('Vegetation indices',size= 12,weight = 'bold')
plt.ylabel('Values of normalized vegetation indices',size= 12,weight = 'bold')
#去除边框线
# ax.spines['top'].set_visible(False)
# ax.spines['right'].set_visible(False)
#设置边框宽度
ax.spines['bottom'].set_linewidth('1.0')#设置边框线宽为2.0
ax.spines['top'].set_linewidth('1.0')#设置边框线宽为2.0
ax.spines['right'].set_linewidth('1.0')#设置边框线宽为2.0
ax.spines['left'].set_linewidth('1.0')#设置边框线宽为2.0
#去除图片周围空白
plt.subplots_adjust(top=0.98, bottom=0.12, right=0.99, left=0.09, hspace=0, wspace=0)
# plt.margins(0, 0)
plt.savefig('./VIs_barss.png', dpi=600)
plt.show()






本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一、绘制不同类别特征均值标准差直方图 的相关文章

随机推荐

  • Qt中正则表达式

    TOC 不积跬步 无以至千里 Qt中正则表达式 正则表达式 regular expression 就是在一个文本中匹配子字符串的一种模式 pattern 它可以简写为 regexp 一个regexp主要应用在以下几个方面 验证 一个rege
  • 数据结构c语言版如何运行程序,数据结构c语言怎么运行啊

    首先要确定你想采用线性表的顺序存储结构还是链式存储结构 以顺序存储结构为例 include include define ERROR 0 define OK 1 typedef int Status typedef int ElemType
  • pom 通用配置

  • Vue自定义指令directive(详细)

    个人网站 紫陌 笔记分享网 想寻找共同学习交流 共同成长的伙伴 请点击 前端学习交流群 1 什么是自定义指令 v 开头的行内属性 都是指令 不同的指令可以完成或实现不同的功能 除了内置指令外 Vue 也允许注册自定义指令 有的情况下 你仍然
  • 服务器上安装mpi4py

    服务器上安装mpi4py 尝试方法1 失败 python m pip install mpi4py 结果报错 缺失某一个库文件导致编译失败 解决方法 如果有权限的话可以sudo安装libopenmpi dev解决 否则只能手动编译 尝试方法
  • Python - 注释

    单行注释 comments 多行注释 comments comments 模块文档 1 用法 模块名 doc 2 显示代码块的简要说明 3 任何代码块 文件 类 函数 均可以有文档说明 不跨行 comments 跨行 comments co
  • OkHttp:自定义缓存

    设置OkHttp 的缓存策略 没网络直接读取缓存 并且设置缓存生命周期为 30s 自定义 Interceptor 请求策略 没有网络直接读取缓存 public class CacheRequestInterceptor implements
  • 目标检测算法——mmdetection下面的deformable-detr运行

    1 环境 包 版本 mmcv full 1 4 2 mmdet 2 19 1 torch 1 10 0 cu113 torchvision 0 11 1 cu113 2 文档 mmet官方文档 mmcv官方文档 源码下载 3 数据集 自定义
  • javascript的比较运算符

    比较运算符的隐士转换 这里只比较 字符串和 数字 对象的比较没有意义 一般返回的是false 234 lt 78 true 234 lt 78 false 234 lt 78 false 总结 只有当 comparison operator
  • Qt中的ui指针和this指针

    本博客中关于C 和QT 无特别说明开发环境为 Visual studio 2013 QT为5 9 9 特此说明 谨慎参考 希望能帮助到爱好者 首先看ui指针的定义 在mainwindow h中 private Ui MainWindow u
  • VisualStudio 无法登录

    文章转载自 https cloud tencent com developer article 1342617 如果遇到 visualStudio 无法登陆 可以看下我的方法 可能有用 尝试关闭代理 打开设置 网络 代理 关了它 试试 如果
  • zookeeper基本概念及使用场景

    zookeeper基本概念及使用场景 Zookeeper作为一种协调分布式应用高性能的调度服务 在ZooKeeper中 节点类型可以分为 持久节点 PERSISTENT 临时节点 EPHEMERAL 时序节点 SEQUENTIAL 具体在节
  • 机器学习项目的实验方法

    发现对于一些机器学习项目 在项目进行中往往会直接就开始编码实现 而没有一套完整的方法论和有实操性的流程 经过一些粗浅的研究 下面写出一些对于此的部分思考 或有参考借鉴之用 实验开始前 需要清楚研究什么 如何收集数据 打算怎样分析 1 研究目
  • Crunchfish发布XR Skeleton手势交互解决方案

    转自 https baijiahao baidu com s id 1677811512042412943 wfr spider for pc 移动交互解决方案开发商Crunchfish日前发布了名为XR Skeleton的手势控制技术 只
  • HttpClient的”javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated”异常

    在开发https应用时 你的测试服务器常常没有一个 有效的 SSL证书 在你的客户端连接测试服务器时 如下的异常会被抛出 javax net ssl SSLPeerUnverifiedException peer not authentic
  • CDN方式使用Vue,VantUI组件方式

    代码示例
  • 这个小工具竟然可以让我保持健康

    Part1背景 我有个同事今天跟我说 他总是忘记喝水 这可怎么办 作为程序员的我们 本就每天久坐缺乏锻炼 如果再忘记喝水 那将会带来多么严重的后果 所以我决定为他做一个小工具来提醒他定时喝水 活动 Part2前期准备 1下载依赖软件 pip
  • python 用逐步回归筛选变量

    在回归分析中 影响因变量y的因素很多 而有些自变量的对目标变量y的影响程度不同 为了建立一个相对最优的回归方程 我们需要筛选掉对目标变量y影响不大的变量 这就涉及到了变量选择问题 逐步回归是通过假设检验的方法来筛选强特征 但如果直接用特征变
  • Springboot线上环境彻底关闭Swagger-UI

    文章目录 概要 整体架构流程 技术细节 小结 概要 Springboot线上环境彻底关闭Swagger UI 整体架构流程 1 SwaggerConfig使用 Profile排除线上环境其他环境生效 2 创建一个控制类使用 Profile仅
  • 一、绘制不同类别特征均值标准差直方图

    1 绘制不同类别植被指数均值标准差直方图 数据类型 不同类别样本植被指数 实验目的 1 计算不同类别各指数的均值和标准差 1 1读取表格中的数据 1 2预处理数据 提取不同类别指数 归一化指数 计算均值标准差 1 3画图 import pa