张世豪 1 bulan lalu
induk
melakukan
31c47314d7
4 mengubah file dengan 138 tambahan dan 138 penghapusan
  1. 5 5
      partReport.py
  2. 9 9
      public.py
  3. 9 9
      report.py
  4. 115 115
      rongzhong.py

+ 5 - 5
partReport.py

@@ -1062,8 +1062,8 @@ def getConventionalNutrientIndicators(originData,data,type, changeFileUrl, saveF
                 paragraph.paragraph_format.line_spacing = 1  # 段落行间距
 
     doc.add_heading('3、关联分析法审核', level=2)
-    if os.path.isfile(f'{mkdir_path}/有机质与全氮相关性分析图.png'):
-        doc.add_picture(f'{mkdir_path}/有机质与全氮相关性分析图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/有机质与全氮相关性散点图.png'):
+        doc.add_picture(f'{mkdir_path}/有机质与全氮相关性散点图.png', width=Inches(6.0))
     paragraph_t_2 = doc.add_paragraph()
     paragraph_t_2.add_run(f'图2:有机质与全氮相关关系').bold = True
     paragraph_t_2.alignment = WD_ALIGN_PARAGRAPH.CENTER
@@ -1663,10 +1663,10 @@ def getChemicalIndicators(originData,data,type, changeFileUrl, saveFileUrl, chec
     paragraph_t_11.add_run(f'图11:全盐量分布图').bold = True
     paragraph_t_11.alignment = WD_ALIGN_PARAGRAPH.CENTER
 
-    if os.path.isfile(f'{mkdir_path}/全盐量与电导率相关性分析图.png'):
-        doc.add_picture(f'{mkdir_path}/全盐量与电导率相关性分析图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/全盐量与电导率相关性散点图.png'):
+        doc.add_picture(f'{mkdir_path}/全盐量与电导率相关性散点图.png', width=Inches(6.0))
     paragraph_t_12 = doc.add_paragraph()
-    paragraph_t_12.add_run(f'图12:全盐量与电导率相关性分析图').bold = True
+    paragraph_t_12.add_run(f'图12:全盐量与电导率相关性散点图').bold = True
     paragraph_t_12.alignment = WD_ALIGN_PARAGRAPH.CENTER
 
     if os.path.isfile(f'{mkdir_path}/离子总量与水溶性盐总量关系图.png'):

+ 9 - 9
public.py

@@ -566,8 +566,8 @@ def eight_ion_coun(arr, summary):
                 rateArr.append('存疑:(水溶性全盐量-八大离子加和)/水溶性全盐量×100复核数据合理性。')
             else:
                 rateArr.append('')
-            #(17)阳离子总量 - 阴离子总量应基本相等,超过±1则提示异常
-            if not pd.isna(row['阳离子总量-阴离子总量']) and (row['阳离子总量-阴离子总量'] < -1 or row['阳离子总量-阴离子总量'] > 1) :
+            #(17)阳离子总量 - 阴离子总量应基本相等,超过±0.5则提示异常
+            if not pd.isna(row['阳离子总量-阴离子总量']) and (row['阳离子总量-阴离子总量'] < -0.5 or row['阳离子总量-阴离子总量'] > 0.5) :
                 subtractionArr.append('存疑:阳离子总量 - 阴离子总量复核数据合理性。')
             else:
                 subtractionArr.append('')
@@ -611,7 +611,7 @@ def nutrient_data(arr):
         sKErrTar = []  # 保存交换性钾不等于速效钾
         for index, row in arr.iterrows():
             # 交换性钾 == 速效钾
-            if not pd.isna(row['速效钾mg/kg']) and not pd.isna(row['交换性钾']) and ((row['速效钾mg/kg'] - row['交换性钾']*391)/ (row['交换性钾']*391) > 0.2 or (row['速效钾mg/kg'] - row['交换性钾']*391)/ (row['交换性钾']*391) < -0.2):
+            if not pd.isna(row['速效钾mg/kg']) and not pd.isna(row['交换性钾']) and (2*(row['速效钾mg/kg'] - row['交换性钾']*391) / (row['速效钾mg/kg'] + row['交换性钾']*391) > 0.2 or 2*(row['速效钾mg/kg'] - row['交换性钾']*391)/ (row['速效钾mg/kg'] + row['交换性钾']*391) < -0.2):
                 sKErr.append('存疑:交换性钾和速效钾误差超20%。')
                 sKErrTar.append('交换性钾、速效钾。')
             else:
@@ -645,8 +645,8 @@ def nutrient_data(arr):
             else:
                 KArr.append('')
                 KArrTar.append('')
-            #(6)有效磷在[1, 80]范围之外的;存疑; 耕地 超过80存疑
-            if (row['pH'] >= 6.5 and (row['有效磷g/kg'] < 3 or row['有效磷g/kg'] > 60)) or (row['pH'] < 6.5 and (row['有效磷g/kg'] <1 or row['有效磷g/kg'] > 80) or (row['编号'][6:10] == '0101' or row['编号'][6:10] == '0102' or row['编号'][6:10] == '0103') and row['有效磷g/kg'] > 60) :
+            #(6)有效磷在[1, 50]范围之外的;存疑; 耕地 超过80存疑
+            if (row['pH'] >= 6.5 and (row['有效磷g/kg'] < 3 or row['有效磷g/kg'] > 60)) or (row['pH'] < 6.5 and (row['有效磷g/kg'] <1 or row['有效磷g/kg'] > 50) or (row['编号'][6:10] == '0101' or row['编号'][6:10] == '0102' or row['编号'][6:10] == '0103') and row['有效磷g/kg'] > 60) :
                 availableP.append('有效磷:复核数据合理性。')
                 availablePTar.append('有效磷。')
             else:
@@ -678,10 +678,10 @@ def nutrient_data(arr):
             #(10)有机质、全氮含量异常高,但速效养分特低,提示异常   无法量化不处理
             #(11)母岩为片麻岩,但全钾、速效缓效钾含量低,提示异常   无法量化不处理
             #(12)有效磷<3和大于60,提示异常;速效钾<50提示异常
-            if row['有效磷g/kg'] < 3 or row['有效磷g/kg'] > 60:
-                availablePCom.append('有效磷:复核数据合理性。')
-            else:
-                availablePCom.append('')
+            # if row['有效磷g/kg'] < 3 or row['有效磷g/kg'] > 60:
+            #     availablePCom.append('有效磷:复核数据合理性。')
+            # else:
+            #     availablePCom.append('')
             if row['速效钾mg/kg'] < 50:
                 availableTxt.append('速效钾:复核数据合理性。')
             else:

+ 9 - 9
report.py

@@ -393,7 +393,7 @@ def getMap(data, title, unit, url):
         fig.add_trace(go.Scatter(x=x, y=p*100, mode='lines', yaxis='y2', name='拟合曲线', line=dict(width=2)), secondary_y=False)
         fig.update_layout(
             title={
-                'text': '指标累积频率分析图',
+                'text': '指标频度统计图',
                 'xanchor': 'center',  # 控制水平对齐,可选'left', 'center', 'right'
                 'yanchor': 'bottom',  # 控制垂直对齐,可选'top', 'middle', 'bottom'
                 'x': 0.5,  # 控制标题的水平位置,0.5代表中心,可以是小数(相对位置)或整数(像素位置)
@@ -406,7 +406,7 @@ def getMap(data, title, unit, url):
         if p.max()*100 >100:
             maxData = p.max()*100
         fig.update_yaxes(range=[0, maxData], row=1, col=1, secondary_y=False)
-        html_file_path = f"{url}/{title}分析图.html"
+        html_file_path = f"{url}/{title}频度统计图.html"
         html_file_path = html_file_path.replace('(g/cm³)','')
         html_file_path = html_file_path.replace('(%)', '')
         html_file_path = html_file_path.replace('>', '')
@@ -414,7 +414,7 @@ def getMap(data, title, unit, url):
         title = title.replace('(g/cm³)', '')
         title = title.replace('(%)', '')
         title = title.replace('>', '')
-        pio.write_image(fig, f"{url}/{title}分析图.png")
+        pio.write_image(fig, f"{url}/{title}频度统计图.png")
 
 
 def getFrequencyImage(data, url):
@@ -779,11 +779,11 @@ def getNAndC(data, url):
                       },
                       xaxis_title='有机质(g/kg)',
                       yaxis_title='全氮(g/kg)')
-    html_file_path = f"{url}/有机质与全氮相关性分析图.html"
+    html_file_path = f"{url}/有机质与全氮相关性散点图.html"
     pio.write_html(fig, file=html_file_path, auto_open=False)
     # 同时保存一份图片
-    pio.write_image(fig, f"{url}/有机质与全氮相关性分析图.png")
-    # plt.savefig('./img/审核报告图形/' + '有机质与全氮相关性分析图.png', dpi=500, bbox_inches='tight')
+    pio.write_image(fig, f"{url}/有机质与全氮相关性散点图.png")
+    # plt.savefig('./img/审核报告图形/' + '有机质与全氮相关性散点图.png', dpi=500, bbox_inches='tight')
     # plt.show()
     abnormalData = pd.DataFrame({})
     for index, row in data.iterrows():
@@ -973,10 +973,10 @@ def manyTypes(data,url):
                       },
                       xaxis_title='全盐量(g/kg)',
                       yaxis_title='电导率(mS/cm)')
-    html_file_path = f"{url}/全盐量与电导率相关性分析图.html"
+    html_file_path = f"{url}/全盐量与电导率相关性散点图.html"
     pio.write_html(fig, file=html_file_path, auto_open=False)
     # 同时保存一份图片
-    pio.write_image(fig, f"{url}/全盐量与电导率相关性分析图.png")
+    pio.write_image(fig, f"{url}/全盐量与电导率相关性散点图.png")
     print(3.44)
 
 
@@ -997,7 +997,7 @@ def manyTypes(data,url):
 
     getInteractiveImg(x2, y2, '离子总量', x2, y3, '水溶性盐总量', x2, y4,
                       '离子总量与水溶性盐总量之差', url,
-                      '离子总量与水溶性盐总量关系图', '样品数量', '离子总量/水溶性盐总量(g/kg)', data['原样品编号'])
+                      '水溶性盐总量与离子总量相关性散点图', '样品数量', '离子总量/水溶性盐总量(g/kg)', data['原样品编号'])
 
 
 

+ 115 - 115
rongzhong.py

@@ -509,7 +509,7 @@ def checkData(fileUrl):
                     '水溶性碳酸氢离子含量cmol(1/2HCO3-)/kg': hcoArr,
                     '水溶性硫酸根离子含量cmol(1/2SO42-)/kg': soArr,
                     '八大离子加和g/kg': eightPlusArr,
-                    '(水溶性全盐量-八大离子加和)/水溶性全盐量×100': (allArr - eightPlusArr) / allArr * 100,
+                    '(水溶性全盐量-八大离子加和)/水溶性全盐量×100': 2*(allArr - eightPlusArr) / (allArr + eightPlusArr) * 100, #/已改:分母水溶性全盐量二者均值
                     '离子总量g/kg': filter_number(simpleData['离子总量']),
                     '阳离子总量-阴离子总量': totalCations - totalAnions,
                     '土地利用类型': simpleData['土地利用类型']
@@ -872,7 +872,7 @@ def getReport(originData,data,changeFileUrl, saveFileUrl, check_1_data,
     # 表13 所有存疑数据
     with pd.ExcelWriter(f'{mkdir_path}/数据审核过程存疑数据一览表.xlsx', engine='openpyxl') as writer:
         allNeedData[allNeedData['审核结果'] != ''].to_excel(writer, index=False, sheet_name='存疑数据')
-    # 附表: 频度分析
+    # 附表: 频度频度统计
     report.getFrequencyImage(data, mkdir_path)
     table_f_2_data = report.getFrequencyInformation(data, mkdir_path)
 
@@ -1057,8 +1057,8 @@ def getReport(originData,data,changeFileUrl, saveFileUrl, check_1_data,
                 paragraph.paragraph_format.alignment = WD_TABLE_ALIGNMENT.CENTER  # 对齐
                 paragraph.paragraph_format.line_spacing = 1  # 段落行间距
     doc.add_heading('3、关联分析法审核', level=2)
-    if os.path.isfile(f'{mkdir_path}/有机质与全氮相关性分析图.png'):
-        doc.add_picture(f'{mkdir_path}/有机质与全氮相关性分析图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/有机质与全氮相关性散点图.png'):
+        doc.add_picture(f'{mkdir_path}/有机质与全氮相关性散点图.png', width=Inches(6.0))
     paragraph_t_2 = doc.add_paragraph()
     paragraph_t_2.add_run(f'图2:有机质与全氮相关关系').bold = True
     paragraph_t_2.alignment = WD_ALIGN_PARAGRAPH.CENTER
@@ -1173,16 +1173,16 @@ def getReport(originData,data,changeFileUrl, saveFileUrl, check_1_data,
     paragraph_t_11.add_run(f'图11:全盐量分布图').bold = True
     paragraph_t_11.alignment = WD_ALIGN_PARAGRAPH.CENTER
 
-    if os.path.isfile(f'{mkdir_path}/全盐量与电导率相关性分析图.png'):
-        doc.add_picture(f'{mkdir_path}/全盐量与电导率相关性分析图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/全盐量与电导率相关性散点图.png'):
+        doc.add_picture(f'{mkdir_path}/全盐量与电导率相关性散点图.png', width=Inches(6.0))
     paragraph_t_12 = doc.add_paragraph()
-    paragraph_t_12.add_run(f'图12:全盐量与电导率相关性分析图').bold = True
+    paragraph_t_12.add_run(f'图12:全盐量与电导率相关性散点图').bold = True
     paragraph_t_12.alignment = WD_ALIGN_PARAGRAPH.CENTER
 
-    if os.path.isfile(f'{mkdir_path}/离子总量与水溶性盐总量关系图.png'):
-        doc.add_picture(f'{mkdir_path}/离子总量与水溶性盐总量关系图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/水溶性盐总量与离子总量相关性散点图.png'):
+        doc.add_picture(f'{mkdir_path}/水溶性盐总量与离子总量相关性散点图.png', width=Inches(6.0))
     paragraph_t_13 = doc.add_paragraph()
-    paragraph_t_13.add_run(f'图13:水溶性盐总量与离子总量关系分析图').bold = True
+    paragraph_t_13.add_run(f'图13:水溶性盐总量与离子总量相关性散点图').bold = True
     paragraph_t_13.alignment = WD_ALIGN_PARAGRAPH.CENTER
 
     doc.add_heading('四、审核存疑数据', level=1)
@@ -1436,102 +1436,102 @@ def getReport(originData,data,changeFileUrl, saveFileUrl, check_1_data,
     #         paragraph.paragraph_format.line_spacing = 1  # 段落行间距
 
     # doc.add_heading('为避免数据量过多无法显示,请至数据保存文件夹中查看数据表:频度分析表.xlsx', level=4)
-    doc.add_heading('附表3:各指标频度分析图', level=2)
+    doc.add_heading('附表3:各指标频度频度统计图', level=2)
     # 插入频度信息的图形
-    if os.path.isfile(f'{mkdir_path}/0.002mm以下颗粒含量分析图.png'):
-        doc.add_picture(f'{mkdir_path}/0.002mm以下颗粒含量分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/0.02~0.002mm颗粒含量分析图.png.png'):
-        doc.add_picture(f'{mkdir_path}/0.02~0.002mm颗粒含量分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/0.2~0.02mm颗粒含量分析图.png'):
-        doc.add_picture(f'{mkdir_path}/0.2~0.02mm颗粒含量分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/2~0.2mm颗粒含量分析图.png'):
-        doc.add_picture(f'{mkdir_path}/2~0.2mm颗粒含量分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/pH分析图.png'):
-        doc.add_picture(f'{mkdir_path}/pH分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/电导率分析图.png'):
-        doc.add_picture(f'{mkdir_path}/电导率分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/风干试样含水量(分析基)分析图.png'):
-        doc.add_picture(f'{mkdir_path}/风干试样含水量(分析基)分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/缓效钾分析图.png'):
-        doc.add_picture(f'{mkdir_path}/缓效钾分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/交换性钙分析图.png'):
-        doc.add_picture(f'{mkdir_path}/交换性钙分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/交换性钾分析图.png'):
-        doc.add_picture(f'{mkdir_path}/交换性钾分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/交换性镁分析图.png'):
-        doc.add_picture(f'{mkdir_path}/交换性镁分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/交换性钠分析图.png'):
-        doc.add_picture(f'{mkdir_path}/交换性钠分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/交换性盐基总量分析图.png'):
-        doc.add_picture(f'{mkdir_path}/交换性盐基总量分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/全氮分析图.png'):
-        doc.add_picture(f'{mkdir_path}/全氮分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/全钾分析图.png'):
-        doc.add_picture(f'{mkdir_path}/全钾分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/全磷分析图.png'):
-        doc.add_picture(f'{mkdir_path}/全磷分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/全盐量分析图.png'):
-        doc.add_picture(f'{mkdir_path}/全盐量分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/速效钾分析图.png'):
-        doc.add_picture(f'{mkdir_path}/速效钾分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/洗失量(吸管法需填)分析图.png'):
-        doc.add_picture(f'{mkdir_path}/洗失量(吸管法需填)分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/阳离子交换量分析图.png'):
-        doc.add_picture(f'{mkdir_path}/阳离子交换量分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/有机质分析图.png'):
-        doc.add_picture(f'{mkdir_path}/有机质分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/有效硅分析图.png'):
-        doc.add_picture(f'{mkdir_path}/有效硅分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/有效磷分析图.png'):
-        doc.add_picture(f'{mkdir_path}/有效磷分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/有效硫分析图.png'):
-        doc.add_picture(f'{mkdir_path}/有效硫分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/有效锰分析图.png'):
-        doc.add_picture(f'{mkdir_path}/有效锰分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/有效钼分析图.png'):
-        doc.add_picture(f'{mkdir_path}/有效钼分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/有效硼分析图.png'):
-        doc.add_picture(f'{mkdir_path}/有效硼分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/有效铁分析图.png'):
-        doc.add_picture(f'{mkdir_path}/有效铁分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/有效铜分析图.png'):
-        doc.add_picture(f'{mkdir_path}/有效铜分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/有效锌分析图.png'):
-        doc.add_picture(f'{mkdir_path}/有效锌分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/总镉分析图.png'):
-        doc.add_picture(f'{mkdir_path}/总镉分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/总铬分析图.png'):
-        doc.add_picture(f'{mkdir_path}/总铬分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/总汞分析图.png'):
-        doc.add_picture(f'{mkdir_path}/总汞分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/总镍分析图.png'):
-        doc.add_picture(f'{mkdir_path}/总镍分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/总砷分析图.png'):
-        doc.add_picture(f'{mkdir_path}/总砷分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/总铅分析图.png'):
-        doc.add_picture(f'{mkdir_path}/总铅分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/土壤容重1分析图.png'):
-        doc.add_picture(f'{mkdir_path}/土壤容重1分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/土壤容重2分析图.png'):
-        doc.add_picture(f'{mkdir_path}/土壤容重2分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/土壤容重3分析图.png'):
-        doc.add_picture(f'{mkdir_path}/土壤容重3分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/土壤容重4分析图.png'):
-        doc.add_picture(f'{mkdir_path}/土壤容重4分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/土壤容重平均值分析图.png'):
-        doc.add_picture(f'{mkdir_path}/土壤容重平均值分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/水稳0.5mm~1mm分析图.png'):
-        doc.add_picture(f'{mkdir_path}/水稳0.5mm~1mm分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/水稳0.25mm~0.5mm分析图.png'):
-        doc.add_picture(f'{mkdir_path}/水稳0.25mm~0.5mm分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/水稳1mm~2mm分析图.png'):
-        doc.add_picture(f'{mkdir_path}/水稳1mm~2mm分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/水稳2mm~3mm分析图.png'):
-        doc.add_picture(f'{mkdir_path}/水稳2mm~3mm分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/水稳3mm~5mm分析图.png'):
-        doc.add_picture(f'{mkdir_path}/水稳3mm~5mm分析图.png', width=Inches(6.0))
-    if os.path.isfile(f'{mkdir_path}/水稳5mm分析图.png'):
-        doc.add_picture(f'{mkdir_path}/水稳5mm分析图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/0.002mm以下颗粒含量频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/0.002mm以下颗粒含量频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/0.02~0.002mm颗粒含量频度统计图.png.png'):
+        doc.add_picture(f'{mkdir_path}/0.02~0.002mm颗粒含量频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/0.2~0.02mm颗粒含量频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/0.2~0.02mm颗粒含量频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/2~0.2mm颗粒含量频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/2~0.2mm颗粒含量频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/pH频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/pH频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/电导率频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/电导率频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/风干试样含水量(分析基)频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/风干试样含水量(分析基)频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/缓效钾频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/缓效钾频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/交换性钙频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/交换性钙频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/交换性钾频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/交换性钾频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/交换性镁频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/交换性镁频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/交换性钠频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/交换性钠频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/交换性盐基总量频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/交换性盐基总量频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/全氮频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/全氮频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/全钾频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/全钾频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/全磷频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/全磷频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/全盐量频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/全盐量频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/速效钾频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/速效钾频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/洗失量(吸管法需填)频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/洗失量(吸管法需填)频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/阳离子交换量频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/阳离子交换量频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/有机质频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/有机质频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/有效硅频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/有效硅频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/有效磷频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/有效磷频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/有效硫频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/有效硫频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/有效锰频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/有效锰频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/有效钼频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/有效钼频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/有效硼频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/有效硼频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/有效铁频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/有效铁频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/有效铜频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/有效铜频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/有效锌频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/有效锌频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/总镉频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/总镉频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/总铬频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/总铬频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/总汞频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/总汞频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/总镍频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/总镍频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/总砷频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/总砷频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/总铅频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/总铅频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/土壤容重1频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/土壤容重1频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/土壤容重2频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/土壤容重2频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/土壤容重3频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/土壤容重3频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/土壤容重4频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/土壤容重4频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/土壤容重平均值频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/土壤容重平均值频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/水稳0.5mm~1mm频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/水稳0.5mm~1mm频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/水稳0.25mm~0.5mm频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/水稳0.25mm~0.5mm频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/水稳1mm~2mm频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/水稳1mm~2mm频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/水稳2mm~3mm频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/水稳2mm~3mm频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/水稳3mm~5mm频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/水稳3mm~5mm频度统计图.png', width=Inches(6.0))
+    if os.path.isfile(f'{mkdir_path}/水稳5mm频度统计图.png'):
+        doc.add_picture(f'{mkdir_path}/水稳5mm频度统计图.png', width=Inches(6.0))
     doc.add_heading('附表4:数值修约标准', level=2)
     # 读取数据 插入表格 写入数据
     numData = pd.read_excel('./img/数值修约要求.xlsx', sheet_name='Sheet1')
@@ -1668,7 +1668,7 @@ def saveFile():
             nowTable_sr = pd.read_excel(mkdir_path + '/土壤水溶性盐数据-' + nowTime + '.xlsx',
                                         sheet_name='水溶性盐数据')
             imgData_sr = nowTable_sr.dropna(subset=['水溶性全盐量g/kg', '电导率ms/cm'])
-            getImg(imgData_sr['水溶性全盐量g/kg'],imgData_sr['电导率ms/cm'],mkdir_path,'全盐量与电导率相关性分析图',
+            getImg(imgData_sr['水溶性全盐量g/kg'],imgData_sr['电导率ms/cm'],mkdir_path,'全盐量与电导率相关性散点图',
                   '水溶性盐数据', '水溶性全盐量g/kg','电导率ms/cm',
                    imgData_sr['样品编号'],mkdir_path + '/土壤水溶性盐数据-' + nowTime + '.xlsx','T1')
             getStatisticsImg(nowTable_sr['水溶性全盐量g/kg'], '水溶性全盐量g/kg', '水溶性全盐量',
@@ -1683,12 +1683,12 @@ def saveFile():
 
             nowTable_NPK = pd.read_excel(mkdir_path + '/土壤氮磷钾数据-' + nowTime + '.xlsx',
                                         sheet_name='土壤氮磷钾数据')
-            # 插入分析
+            # 插入频度统计
             imgData_NPK = nowTable_NPK.dropna(subset=['有机质g/kg', '全氮g/kg'])
             cationImgData = nowTable_NPK.dropna(subset=['有机质g/kg', '阳离子交换量'])
-            getImg(imgData_NPK['有机质g/kg'],imgData_NPK['全氮g/kg'],mkdir_path,'有机质和全氮相关性分析图','土壤氮磷钾数据',
+            getImg(imgData_NPK['有机质g/kg'],imgData_NPK['全氮g/kg'],mkdir_path,'有机质和全氮相关性散点图','土壤氮磷钾数据',
                    '有机质g/kg','全氮g/kg',imgData_NPK['编号'],mkdir_path + '/土壤氮磷钾数据-' + nowTime + '.xlsx','P1')
-            getImg(cationImgData['有机质g/kg'], cationImgData['阳离子交换量'], mkdir_path, '有机质和阳离子交换量相关性分析图',
+            getImg(cationImgData['有机质g/kg'], cationImgData['阳离子交换量'], mkdir_path, '有机质和阳离子交换量相关性散点图',
                    '土壤氮磷钾数据',
                    '有机质g/kg', '阳离子交换量', cationImgData['编号'], mkdir_path + '/土壤氮磷钾数据-' + nowTime + '.xlsx',
                    'P6')
@@ -1715,34 +1715,34 @@ def saveFile():
 
             nowTable_js = pd.read_excel(mkdir_path + '/土壤金属指标数据-' + nowTime + '.xlsx',
                                          sheet_name='土壤金属指标数据')
-            # 插入相关性分析
+            # 插入相关性散点
             # 铁与ph相关性
             imgDataF = nowTable_js.dropna(subset=['有效铁mg/kg', 'pH'])
-            getImg(imgDataF['有效铁mg/kg'], imgDataF['pH'], mkdir_path, '有效铁与ph相关性分析图',
+            getImg(imgDataF['有效铁mg/kg'], imgDataF['pH'], mkdir_path, '有效铁与ph相关性散点图',
                    '土壤金属指标数据',
                    '有效铁mg/kg', 'pH', imgDataF['编号'], mkdir_path + '/土壤金属指标数据-' + nowTime + '.xlsx',
                    'T1')
             # 锰与ph相关性
             imgDataMe = nowTable_js.dropna(subset=['有效锰mg/kg', 'pH'])
-            getImg(imgDataMe['有效锰mg/kg'], imgDataMe['pH'], mkdir_path, '有效锰与pH相关性分析图',
+            getImg(imgDataMe['有效锰mg/kg'], imgDataMe['pH'], mkdir_path, '有效锰与pH相关性散点图',
                    '土壤金属指标数据',
                    '有效锰mg/kg', 'pH', imgDataMe['编号'], mkdir_path + '/土壤金属指标数据-' + nowTime + '.xlsx',
                    'W1')
             # 铜与ph相关性
             imgDataCu = nowTable_js.dropna(subset=['有效铜mg/kg', 'pH'])
-            getImg(imgDataCu['有效铜mg/kg'], imgDataCu['pH'], mkdir_path, '有效铜与pH相关性分析图',
+            getImg(imgDataCu['有效铜mg/kg'], imgDataCu['pH'], mkdir_path, '有效铜与pH相关性散点图',
                    '土壤金属指标数据',
                    '有效铜mg/kg', 'pH', imgDataCu['编号'], mkdir_path + '/土壤金属指标数据-' + nowTime + '.xlsx',
                    'Z1')
             # 锌与ph相关性
             imgDataZn = nowTable_js.dropna(subset=['有效锌mg/kg', 'pH'])
-            getImg(imgDataZn['有效锌mg/kg'], imgDataZn['pH'], mkdir_path, '有效锌与pH相关性分析图',
+            getImg(imgDataZn['有效锌mg/kg'], imgDataZn['pH'], mkdir_path, '有效锌与pH相关性散点图',
                    '土壤金属指标数据',
                    '有效锌mg/kg', 'pH', imgDataZn['编号'], mkdir_path + '/土壤金属指标数据-' + nowTime + '.xlsx',
                    'AC1')
             # 钼与ph相关性
             imgDataMu = nowTable_js.dropna(subset=['有效钼mg/kg', 'pH'])
-            getImg(imgDataMu['有效钼mg/kg'], imgDataMu['pH'], mkdir_path, '有效钼与pH相关性分析图',
+            getImg(imgDataMu['有效钼mg/kg'], imgDataMu['pH'], mkdir_path, '有效钼与pH相关性散点图',
                    '土壤金属指标数据',
                    '有效钼mg/kg', 'pH', imgDataMu['编号'], mkdir_path + '/土壤金属指标数据-' + nowTime + '.xlsx',
                    'AF1')