当前位置: 首页 > article >正文

2022高教社杯全国大学生数学建模竞赛C题 问题一(1) Python代码

目录

  • 问题 1
    • 1.1 对这些玻璃文物的表面风化与其玻璃类型、纹饰和颜色的关系进行分析
      • 数据探索 -- 单个分类变量的绘图
        • 树形图
        • 条形图
        • 扇形图
        • 雷达图
      • Cramer’s V 相关分析
      • 统计检验
        • 列联表分析
        • 卡方检验
        • Fisher检验
      • 绘图
        • 堆积条形图
        • 分组条形图
      • 分类模型
        • Logistic回归
        • 随机森林

import matplotlib.pyplot as plt
# Linux show Chinese characters *** important
plt.rcParams['font.family'] = 'WenQuanYi Micro Hei' 

import warnings
warnings.filterwarnings("ignore")
import pandas as pd

# read by default 1st sheet of an excel file
path = '/home/shiyu/Desktop/path_acdemic/ant/数模/历年题目/2022/附件.xlsx'
d1 = pd.read_excel(path, sheet_name='表单1')
d2 = pd.read_excel(path, sheet_name='表单2')
d3 = pd.read_excel(path, sheet_name='表单3')

print(d1.shape)
print(d2.shape)
print(d3.shape)
(58, 5)
(69, 15)
(8, 16)

问题 1

1.1 对这些玻璃文物的表面风化与其玻璃类型、纹饰和颜色的关系进行分析

数据探索 – 单个分类变量的绘图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

树形图

https://www.geeksforgeeks.org/treemaps-in-python-using-squarify/

import seaborn as sb 
import matplotlib.pyplot as plt
import squarify
    
data = list(d1['颜色'].value_counts())
labels = list(d1['颜色'].value_counts().index)

plt.rcParams['figure.dpi'] = 300
plt.rcParams['savefig.dpi'] = 300

plt.figure(figsize=(15,8))
squarify.plot(sizes=data, label=labels, text_kwargs={
   'fontsize': 20},
              color=sb.color_palette("Spectral",len(data))) 

plt.axis("off") 
(0.0, 100.0, 0.0, 100.0)

在这里插入图片描述

条形图
df = pd.DataFrame(d1['颜色'].value_counts())
df['颜色'] = df.index
df
count 颜色
颜色
浅蓝 20 浅蓝
蓝绿 15 蓝绿
深绿 7 深绿
4
浅绿 3 浅绿
深蓝 2 深蓝
2
绿 1 绿
import matplotlib.pyplot as plt
import plotly.express as px
import numpy as np

# Linux show Chinese characters *** important
plt.rcParams['font.family'] = 'WenQuanYi Micro Hei' 

fig = px.bar(df, x="颜色", y="count", 
             title="颜色类别计数")
# center title
fig.update_layout(title_x=0.5)
# remove background color
fig.update_layout({
   
'plot_bgcolor': 'rgba(0, 0, 0, 0)',
'paper_bgcolor': 'rgba(0, 0, 0, 0)',
})

fig.show()

在这里插入图片描述

扇形图
print(d1['纹饰'].value_counts())
纹饰
C    30
A    22
B     6
Name: count, dtype: int64
import plotly.express as px
fig = px.pie(d1, names='纹饰', title="玻璃纹饰类别的比例分布")
# center title
fig.update_layout(title_x=0.5)
fig.show()

在这里插入图片描述

print(d1['类型'].value_counts())
fig = px.pie(d1, names='类型', title="玻璃类型的比例分布")
# center title
fig.update_layout(title_x=0.5)
fig.show()
类型
铅钡    40
高钾    18
Name: count, dtype: int64

在这里插入图片描述

print(d1['颜色'].value_counts

http://www.kler.cn/a/308199.html

相关文章:

  • 【Rust练习】21.动态数组 Vector
  • 开源vs闭源:你更看好哪一方?
  • 如何提高自动驾驶中惯性和卫星组合导航pbox的精度?
  • docker运行ActiveMQ-Artemis
  • 【Qt】在 Qt Creator 中使用图片资源方法(含素材网站推荐)
  • HTMLCSS: 实现可爱的冰墩墩
  • 这个时代唯一“不变“的又是{变}
  • Unity for Android使用蓝牙低功耗Bluetooth LE
  • 十.在vue中,发送axios请求应该放在created里还是mounted里?详解
  • 书生大模型全链路开源体系,学习
  • 5G Multicast/Broadcast Services(MBS) (二) Multicast
  • Spring Boot-Session管理问题
  • CentOS7更换阿里云yum更新源
  • C# USB通信技术(通过LibUsbDotNet库)
  • linux-硬件与设备管理-设备挂载与管理
  • NLP:微调BERT进行文本分类
  • Java高级Day43-类加载
  • mysql 修改索引
  • 服务端接口性能优化有哪些方案?
  • 安卓在子线程中使用Toast
  • [Linux]:进程间通信(下)
  • vue2、vue3生成二维码
  • 算法 | 基础排序算法:插入排序、选择排序、交换排序、归并排序
  • xml重点笔记(尚学堂 3h)
  • 使用 GaLore 预训练LLaMA-7B
  • 72、结合无人机进行rk3588oak-lite跟踪目标物体进行识别、跟踪、保持距离