全国大学生数学建模大赛备赛——图形的绘制(折线图、柱状图、散点图、饼图、分布子图)

备赛过程中,图形的绘制是非常重要的一部分,可以直观地展示数据和结果。不同类型的图形适用于不同的情况,下面我简单介绍一下各种图形的特点和用途:

  1. 折线图(Line Chart):

    • 用于显示数据随时间或其他连续变量的变化趋势。
    • 适合展示数据的趋势、周期性和变化规律。
  2. 柱状图(Bar Chart):

    • 用于比较不同类别之间的数据大小或变化。
    • 适合展示类别数据的差异,比如不同组的得分、销售额等。
  3. 散点图(Scatter Plot):

    • 用于展示两个变量之间的关系,是否存在趋势或相关性。
    • 适合用于寻找变量之间的关联性,例如是否存在线性关系。
  4. 饼图(Pie Chart):

    • 用于显示各部分占整体的比例关系。
    • 适合展示数据的相对比例,比如市场份额、资源分配等。
  5. 分布子图(Histogram):

    • 用于展示数据分布情况,了解数据集的特征。
    • 适合展示数据的分布形态,如是否对称、集中在哪个区间等。

在备赛过程中,根据具体的问题和数据特点选择合适的图形进行绘制,能够更好地帮助你理解问题、分析数据和展示结果。

数据集实例:

这里我只展示实例,实际上有六万多行。

单品名称 分类名称 销售日期 扫码销售时间 单品编码 销量(千克) 销售单价(/千克) 销售类型 是否打折销售
泡泡椒(精品) 辣椒类 2020-07-01 09:15:07.924 102900005117056 0.396 7.6 销售
大白菜 花叶类 2020-07-01 09:17:27.295 102900005115960 0.849 3.2 销售
泡泡椒(精品) 辣椒类 2020-07-01 09:17:33.905 102900005117056 0.409 7.6 销售
上海青 花叶类 2020-07-01 09:19:45.450 102900005115823 0.421 10 销售
菜心 花叶类 2020-07-01 09:20:23.686 102900005115908 0.539 8 销售
泡泡椒(精品) 辣椒类 2020-07-01 09:21:55.556 102900005117056 0.277 7.6 销售
云南生菜 花叶类 2020-07-01 09:21:56.536 102900005115779 0.338 8 销售
泡泡椒(精品) 辣椒类 2020-07-01 09:22:01.274 102900005117056 0.132 7.6 销售
云南生菜 花叶类 2020-07-01 09:22:01.476 102900005115779 0.213 8 销售
甜白菜 花叶类 2020-07-01 09:22:15.998 102900011008522 0.514 8 销售
高瓜(1) 水生根茎类 2020-07-01 09:22:21.264 102900005118824 0.251 10 销售
云南油麦菜 花叶类 2020-07-01 09:24:21.833 102900005115984 0.251 6 销售
西峡香菇(1) 食用菌 2020-07-01 09:24:21.905 102900005116530 0.217 18 销售
云南油麦菜 花叶类 2020-07-01 09:24:57.873 102900005115984 0.468 6 销售
青尖椒 辣椒类 2020-07-01 09:25:31.342 102900005116226 0.589 8 销售
高瓜(1) 水生根茎类 2020-07-01 09:25:45.811 102900005118824 0.711 10 销售
云南生菜 花叶类 2020-07-01 09:26:04.530 102900005115779 1.003 8 销售
西峡香菇(1) 食用菌 2020-07-01 09:28:01.983 102900005116530 0.095 18 销售
红椒(1) 辣椒类 2020-07-01 09:30:17.045 102900005116233 0.15 10 销售
云南油麦菜 花叶类 2020-07-01 09:30:26.948 102900005115984 0.502 6 销售
云南油麦菜 花叶类 2020-07-01 09:31:42.483 102900005115984 0.452 6 销售
菜心 花叶类 2020-07-01 09:32:25.623 102900005115908 0.501 8 销售
云南生菜 花叶类 2020-07-01 09:32:59.701 102900005115779 0.201 8 销售
云南生菜 花叶类 2020-07-01 09:33:08.981 102900005115779 0.439 8 销售
苋菜 花叶类 2020-07-01 09:33:09.579 102900005115762 0.686 6 销售
西兰花 花菜类 2020-07-01 09:33:09.998 102900005116714 0.329 14 销售
菜心 花叶类 2020-07-01 09:35:02.477 102900005115908 0.251 8 销售
菠菜 花叶类 2020-07-01 09:35:02.557 102900005118817 0.243 14 销售
西峡香菇(1) 食用菌 2020-07-01 09:35:13.164 102900005116530 0.256 18 销售
云南油麦菜 花叶类 2020-07-01 09:35:40.456 102900005115984 0.318 6 销售
青梗散花 花菜类 2020-07-01 09:36:36.108 102900011009970 0.445 9 销售
云南生菜 花叶类 2020-07-01 09:36:41.217 102900005115779 0.363 8 销售
七彩椒(1) 辣椒类 2020-07-01 09:36:42.447 102900005117209 0.482 16 销售
红灯笼椒(1) 辣椒类 2020-07-01 09:36:43.131 102900011001219 0.343 14 销售
云南油麦菜 花叶类 2020-07-01 09:38:48.342 102900005115984 0.502 6 销售
云南生菜 花叶类 2020-07-01 09:39:03.622 102900005115779 0.301 8 销售
泡泡椒(精品) 辣椒类 2020-07-01 09:41:09.342 102900005117056 0.198 7.6 销售
青线椒 辣椒类 2020-07-01 09:41:22.206 102900051004294 0.172 14 销售
泡泡椒(精品) 辣椒类 2020-07-01 09:41:22.701 102900005117056 0.66 7.6 销售
云南油麦菜 花叶类 2020-07-01 09:41:37.873 102900005115984 0.753 6 销售
云南油麦菜 花叶类 2020-07-01 09:41:50.626 102900005115984 0.552 6 销售
青线椒 辣椒类 2020-07-01 09:41:50.904 102900051004294 0.057 14 销售
大白菜 花叶类 2020-07-01 09:43:10.108 102900005115960 1.101 3.2 销售
金针菇(1) 食用菌 2020-07-01 09:44:13.951 102900005116547 0.435 6 销售
云南油麦菜 花叶类 2020-07-01 09:44:30.811 102900005115984 0.201 6 销售
金针菇(1) 食用菌 2020-07-01 09:44:54.358 102900005116547 0.452 6 销售
云南油麦菜 花叶类 2020-07-01 09:46:00.552 102900005115984 0.385 6 销售
西兰花 花菜类 2020-07-01 09:46:00.634 102900005116714 0.522 14 销售
云南油麦菜 花叶类 2020-07-01 09:46:32.585 102900005115984 0.435 6 销售
洪湖藕带 水生根茎类 2020-07-01 09:46:33.204 102900051000944 0.545 39.8 销售
青梗散花 花菜类 2020-07-01 09:46:43.139 102900011009970 0.368 9 销售
菜心 花叶类 2020-07-01 09:46:45.326 102900005115908 0.313 8 销售
云南生菜 花叶类 2020-07-01 09:47:03.686 102900005115779 0.276 8 销售
金针菇(1) 食用菌 2020-07-01 09:51:17.170 102900005116547 0.217 6 销售
西兰花 花菜类 2020-07-01 09:51:24.696 102900005116714 0.236 14 销售
甜白菜 花叶类 2020-07-01 09:51:58.076 102900011008522 0.451 8 销售
西峡香菇(1) 食用菌 2020-07-01 09:52:14.936 102900005116530 0.184 18 销售
云南油麦菜 花叶类 2020-07-01 09:53:40.584 102900005115984 0.418 6 销售
云南油麦菜 花叶类 2020-07-01 09:54:49.759 102900005115984 0.502 6 销售
金针菇(1) 食用菌 2020-07-01 09:55:59.202 102900005116547 0.468 6 销售
红薯尖 花叶类 2020-07-01 09:55:59.529 102900005119975 0.234 6 销售
杏鲍菇(1) 食用菌 2020-07-01 09:56:02.826 102900005125815 0.301 10 销售
竹叶菜 花叶类 2020-07-01 09:57:10.112 102900005115786 0.786 6 销售
青梗散花 花菜类 2020-07-01 09:57:39.561 102900011009970 0.401 9 销售
大白菜 花叶类 2020-07-01 09:57:59.405 102900005115960 0.629 3.2 销售
青梗散花 花菜类 2020-07-01 09:59:59.498 102900011009970 0.457 9 销售
西兰花 花菜类 2020-07-01 10:00:17.089 102900005116714 0.401 14 销售
泡泡椒(精品) 辣椒类 2020-07-01 10:00:17.255 102900005117056 0.554 7.6 销售
黄白菜(2) 花叶类 2020-07-01 10:00:17.421 102900051010455 0.969 9 销售
红薯尖 花叶类 2020-07-01 10:00:31.623 102900005119975 0.468 6 销售
泡泡椒(精品) 辣椒类 2020-07-01 10:00:36.217 102900005117056 0.145 7.6 销售
云南生菜 花叶类 2020-07-01 10:00:55.467 102900005115779 0.251 8 销售
青茄子(1) 茄类 2020-07-01 10:01:04.530 102900005116509 0.829 4 销售
泡泡椒(精品) 辣椒类 2020-07-01 10:02:18.931 102900005117056 0.581 7.6 销售
青茄子(1) 茄类 2020-07-01 10:02:47.115 102900005116509 0.402 4 销售
苋菜 花叶类 2020-07-01 10:02:47.263 102900005115762 0.702 6 销售
黄白菜(2) 花叶类 2020-07-01 10:02:47.478 102900051010455 0.768 9 销售
红薯尖 花叶类 2020-07-01 10:03:18.592 102900005119975 0.234 6 销售
云南油麦菜 花叶类 2020-07-01 10:04:14.905 102900005115984 0.769 6 销售
西兰花 花菜类 2020-07-01 10:04:32.326 102900005116714 0.329 14 销售
云南油麦菜 花叶类 2020-07-01 10:06:39.995 102900005115984 0.585 6 销售
青茄子(1) 茄类 2020-07-01 10:07:09.210 102900005116509 0.402 4 销售
苋菜 花叶类 2020-07-01 10:08:03.203 102900005115762 0.636 6 销售
西峡香菇(1) 食用菌 2020-07-01 10:09:18.087 102900005116530 0.095 18 销售
云南生菜 花叶类 2020-07-01 10:09:28.185 102900005115779 0.426 8 销售
青茄子(1) 茄类 2020-07-01 10:09:28.663 102900005116509 0.427 4 销售
云南油麦菜 花叶类 2020-07-01 10:10:33.190 102900005115984 0.636 6 销售
西峡香菇(1) 食用菌 2020-07-01 10:11:13.217 102900005116530 0.312 18 销售
青线椒 辣椒类 2020-07-01 10:11:35.951 102900051004294 0.372 14 销售
泡泡椒(精品) 辣椒类 2020-07-01 10:11:36.576 102900005117056 0.515 7.6 销售
红杭椒 辣椒类 2020-07-01 10:11:42.576 102900005116943 0.339 18 销售
大白菜 花叶类 2020-07-01 10:11:43.764 102900005115960 1.321 3.2 销售
西兰花 花菜类 2020-07-01 10:12:17.628 102900005116714 0.386 14 销售
紫茄子(2) 茄类 2020-07-01 10:12:18.196 102900005116257 0.585 6 销售
小米椒 辣椒类 2020-07-01 10:12:32.281 102900005125808 0.182 25.8 销售
云南生菜 花叶类 2020-07-01 10:13:08.905 102900005115779 0.476 8 销售
小米椒 辣椒类 2020-07-01 10:13:25.034 102900005125808 0.058 25.8 销售
杏鲍菇(1) 食用菌 2020-07-01 10:13:39.264 102900005125815 0.2 10 销售
云南生菜 花叶类 2020-07-01 10:14:44.982 102900005115779 0.338 8 销售
青梗散花 花菜类 2020-07-01 10:14:59.001 102900011009970 0.523 9 销售
杏鲍菇(1) 食用菌 2020-07-01 10:14:59.407 102900005125815 0.261 10 销售
红杭椒 辣椒类 2020-07-01 10:15:47.811 102900005116943 0.072 18 销售
大白菜 花叶类 2020-07-01 10:16:23.086 102900005115960 1.132 3.2 销售
泡泡椒(精品) 辣椒类 2020-07-01 10:16:23.249 102900005117056 0.369 7.6 销售
杏鲍菇(1) 食用菌 2020-07-01 10:16:23.655 102900005125815 0.22 10 销售

柱状图

import pandas as pd
import matplotlib.pyplot as plt

# 读取 CSV 文件
data = pd.read_excel(r"种类销售.xlsx")

# 按分类名称对数据进行分组求和
grouped_data = data.groupby('分类名称').sum()

# 设置图形大小
plt.figure(figsize=(15,10))

# 绘制条形图
bars = plt.bar(grouped_data.index, grouped_data['销量(千克)'])

# 设置标题和标签
plt.title('按分类统计销售量')
plt.xlabel('分类')
plt.ylabel('销售量(千克)')

# 旋转x轴标签,使其更易读
plt.xticks(rotation=0)
#显示汉字和负号
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 增加图例
plt.legend(['销售量'], loc='upper right')

# 数据标签
for bar in bars:
    yval = bar.get_height()
    plt.text(bar.get_x() + bar.get_width()/2, yval, round(yval, 2), ha='center', va='bottom')

# 显示图形
plt.show()

 

 折线图一

import pandas as pd
import matplotlib.pyplot as plt

# 读取 CSV 文件
data = pd.read_excel(r"种类销售.xlsx")

# 转换时间列为日期时间格式
data['销售日期'] = pd.to_datetime(data['销售日期'])

# 按时间和分类名称对数据进行分组求和
grouped_data = data.groupby(['销售日期', '分类名称']).sum().unstack()

# 设置图形大小
plt.figure(figsize=(15,10))

# 绘制折线图
for col in grouped_data['销量(千克)'].columns:
    plt.plot(grouped_data.index, grouped_data['销量(千克)'][col], label=col)

# 设置标题和标签
plt.title('不同种类蔬菜随时间销量变化')
plt.xlabel('时间')
plt.ylabel('销售量(千克)')

# 旋转x轴标签,使其更易读
plt.xticks(rotation=45)
# 显示汉字和负号
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 增加图例
plt.legend(loc='upper right')

# 显示图形
plt.show()

 

折线图二

import pandas as pd
import matplotlib.pyplot as plt

# 读取 CSV 文件
data = pd.read_excel(r"种类销售.xlsx")

# 转换销售日期列为日期时间格式
data['销售日期'] = pd.to_datetime(data['销售日期'])

# 按分类名称对数据进行分组
grouped_data = data.groupby('分类名称')

# 获取不同种类的蔬菜
vegetable_types = grouped_data.groups.keys()

# 设置图形大小
plt.figure(figsize=(20,15))

# 生成对应的分布子图
for i, veg_type in enumerate(vegetable_types, 1):
    plt.subplot(2, 3, i)
    veg_data = grouped_data.get_group(veg_type)
    plt.plot(veg_data['销售日期'], veg_data['销量(千克)'])
    plt.title(veg_type)
    plt.xlabel('销售日期')
    plt.ylabel('销售量(千克)')
    plt.xticks(rotation=45)

# 自动调整子图的布局
plt.tight_layout()
# 显示汉字和负号
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 增加图例
plt.legend(loc='upper right')
# 显示图形
plt.show()

 

散点图

import pandas as pd
import matplotlib.pyplot as plt

# 读取 CSV 文件
data = pd.read_excel(r"种类销售.xlsx")

# 转换时间列为日期时间格式
data['销售日期'] = pd.to_datetime(data['销售日期'])

# 按时间和分类名称对数据进行分组求和
grouped_data = data.groupby(['销售日期', '分类名称']).sum().unstack()

# 设置图形大小
plt.figure(figsize=(15,10))

# 绘制散点图
for col in grouped_data['销量(千克)'].columns:
    plt.scatter(grouped_data.index, grouped_data['销量(千克)'][col], label=col)

# 设置标题和标签
plt.title('不同种类蔬菜随时间销量变化')
plt.xlabel('时间')
plt.ylabel('销售量(千克)')

# 旋转x轴标签,使其更易读
plt.xticks(rotation=45)
# 显示汉字和负号
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 增加图例
plt.legend(loc='upper right')

# 显示图形
plt.show()

 

散点图二

import pandas as pd
import matplotlib.pyplot as plt

# 读取 CSV 文件
data = pd.read_excel(r"种类销售.xlsx")

# 转换销售日期列为日期时间格式
data['销售日期'] = pd.to_datetime(data['销售日期'])

# 按分类名称对数据进行分组
grouped_data = data.groupby('分类名称')

# 获取不同种类的蔬菜
vegetable_types = grouped_data.groups.keys()

# 设置图形大小
plt.figure(figsize=(20,15))

# 生成对应的分布子图
for i, veg_type in enumerate(vegetable_types, 1):
    plt.subplot(2, 3, i)
    veg_data = grouped_data.get_group(veg_type)
    plt.scatter(veg_data['销售日期'], veg_data['销量(千克)'])
    plt.title(veg_type)
    plt.xlabel('销售日期')
    plt.ylabel('销售量(千克)')
    plt.xticks(rotation=45)

    # # 添加数据标签
    # for i, row in veg_data.iterrows():
    #     plt.text(row['销售日期'], row['销量(千克)'], str(row['销量(千克)']), fontsize=9, color='red')

# 自动调整子图的布局
plt.tight_layout()
# 显示汉字和负号
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 显示图形
plt.show()

 

饼图

import pandas as pd
import matplotlib.pyplot as plt

# 读取 CSV 文件
data = pd.read_excel(r"种类销售.xlsx")

# 按分类名称对数据进行分组求和
grouped_data = data.groupby('分类名称').sum()

# 设置图形大小
plt.figure(figsize=(10,10))

# 绘制饼图
plt.pie(grouped_data['销量(千克)'], labels=grouped_data.index, autopct='%1.1f%%', startangle=140)

# 设置标题
plt.title('按分类统计销售量')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] =False
# 显示图形
plt.show()

 

 特征热力图

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
date=pd.read_excel('种类品种.xlsx')
#print(date)
date1=date.corr()
print(date1)
sns.heatmap(date1, annot=True, cmap="coolwarm")
plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
plt.title('Correlation Heatmap')
plt.show()

最近更新

  1. TCP协议是安全的吗?

    2024-03-24 20:52:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-24 20:52:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-24 20:52:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-24 20:52:03       20 阅读

热门阅读

  1. 【二进制计算,逆序,每位求和】

    2024-03-24 20:52:03       19 阅读
  2. Python从入门到精通秘籍十七

    2024-03-24 20:52:03       17 阅读
  3. 用C++做一个植物大战僵尸

    2024-03-24 20:52:03       22 阅读
  4. day9 嵌套排序,利用嵌套循环所写的简单时钟

    2024-03-24 20:52:03       17 阅读
  5. LLM推理及加速知识

    2024-03-24 20:52:03       17 阅读
  6. 蓝桥杯:数的分解

    2024-03-24 20:52:03       18 阅读
  7. Python下载音乐

    2024-03-24 20:52:03       23 阅读
  8. 扫雷(c++题解)

    2024-03-24 20:52:03       20 阅读
  9. golang通过参数控制HTTP server是否使用基本认证

    2024-03-24 20:52:03       20 阅读
  10. ZooKeeper

    ZooKeeper

    2024-03-24 20:52:03      18 阅读
  11. 前序、中序、后序遍历(非递归方法)

    2024-03-24 20:52:03       17 阅读
  12. 数独游戏(c++题解)

    2024-03-24 20:52:03       17 阅读