实验十六 matplotlib数据可视化

目录

第1关:各省gdp的和生成条状图

相关知识

第2关:各省银行数量绘制饼图

相关知识

第3关:各类银行数量绘制折线图

第4关:各日超市销售金额绘制折线图

任务描述

相关知识

编程要求

测试说明

第5关:四种类别的销售数量合计最高的三种商品绘制多个条形图

任务描述

相关知识

编程要求

第6关:销售各类别数据绘制饼图

任务描述

相关知识

编程要求


第1关:各省gdp的和生成条状图

题目要求:

各省GDP的excel文件如图所示 编写一个程序,计算每年各省GDP信息的和,生成条状图显示 要求窗口大小10,10,图表标题为GDP条状图

 

 

相关知识

为了完成本关任务,你需要掌握: 1.数据汇总 2.matplotlib库的使用 3.如何建立条状图 4.设置图表参数

Dataframe数据汇总

dataframe对象的Groupby可以根据一个或多个键对DataFrame计算分组摘要统计,count计数、sum求和、mean平均值、std标准差 例如,要将df对象数据按教师列汇总求学生的个数 df.groupby(["教师"])["学号"].count()

matplotlib库的使用

导入pyplot import matplotlib.pyplot as plt

在图表中显示中文 为了正确显示中文字体,请用以下代码更改默认设置,其中'SimHei'表示黑体字。

 
  1. import matplotlib
  2. matplotlib.rcParams['font.family']='SimHei'
  3. matplotlib.rcParams['font.sans-serif'] = ['SimHei']

plt 库的显示函数 使用figure()函数创建一个全局绘图区域,并且使它成为当前的绘图对象, figsize参数可以指定绘图区域的宽度和高度,单位为英寸。 例如 plt.figure(figsize=(8,4)) 建立一个8英寸长4英寸宽的窗口

建立条形图

bar(x, height, alpha=1, width, color=, edgecolor=, label=, linewidth)

参数: x:x轴的位置序列,一般采用arange函数产生一个序列; height:y轴的数值序列,也就是柱形图的高度,一般就是我们需要展示的数据; alpha:透明度 width:为柱形图的宽度 color:柱形图填充的颜色; edgecolor:图形边缘颜色 label:解释每个图像代表的含义 linewidth :边缘线的宽度

 
  1. import matplotlib
  2. import matplotlib.pyplot as plt
  3. x=["mary","mike","harry","tom","jerry","rose"]
  4. y=[84.12,91.83,79.89,60.19,96.83,75.09]
  5. #设置y轴的值
  6. plt.bar(x,height=y,width=0.5, color='b')
  7. #根据x和y绘制条形,条形宽度0.5,颜色蓝色
  8. plt.show()

设置图表参数

plt.xlim(xmin,xmax) 设置当前x轴取值范围 plt.ylim(xmin,xmax) 设置当前y轴取值范围 plt.xlabel(s) 设置当前x轴的标签 plt.ylabel(s) 设置当前y轴的标签 plt.title() 设置标题

import pandas
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
data=pandas.read_excel("test/各省GDP.xlsx",dtype={"年份":str})

#代码开始
df = data.groupby(["年份"])["GDP"].sum()
fig = plt.figure(figsize = (10,10))
plt.bar(df.index,df)
plt.title("GDP条状图")
plt.show()
#代码结束
plt.savefig("image1/gdptxt.jpg")



 

第2关:各省银行数量绘制饼图

银行分布excel文件如图所示

 

 

编写一个程序,将银行信息按省份对银行编号进行汇总 生成饼图显示各省银行的个数 要求绘图窗口为10,10 标题为银行省份分布图 饼图外侧显示省份的前2个字

相关知识

绘制饼图

pie(x, explode=None, labels=None,colors=('b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'),    autopct=None, shadow=False,labeldistance=1.1, radius=None) 参数: x      (每一块)的比例,如果sum(x) > 1会使用sum(x)归一化 labels  (每一块)饼图外侧显示的说明文字 explode (每一块)离开中心距离 startangle  起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起 shadow  是否阴影 labeldistance label绘制位置,相对于半径的比例, 如<1则绘制在饼图内侧 autopct 控制饼图内百分比设置,可以使用format字符串指小数点前后位数 radius  控制饼图半径

import pandas
import matplotlib
matplotlib.use("agg")
import matplotlib.pyplot as plt
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
data=pandas.read_excel("test/银行信息.xlsx")
#代码开始
fig = plt.figure(figsize = (10,10))
dp1 = data.groupby(["省份"])["银行编号"].count()
plt.pie(dp1,labels=dp1.index.str[:2])
plt.title("银行省份分布图")
#代码结束
plt.savefig("image2/yhbt.jpg")

 

第3关:各类银行数量绘制折线图

银行分布excel文件如图所示

 

 

编写一个程序,将银行信息按银行种类对银行编号进行汇总 生成折线图显示银行数量最高的十个银行 按银行种类个数的降序排列 要求绘图窗口为10,10 标题为银行种类折线图

折线图的绘制

折线图就是将多个(x,y)点连接起来,生成一个折线图。 plot([x], y, [fmt], data=None,**kwargs)

函数用于绘制一条折线图,x若省略,则plot函数自动创建从0开始的 x坐标;fmt是字符串类型,用于描述颜色标志线型属性的值,格式为:[color][marker][line]

import pandas
import matplotlib
matplotlib.use("Agg")
import numpy as np
import matplotlib.pyplot as plt
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
data=pandas.read_excel("test/银行信息.xlsx")
#代码开始
sj=data.groupby(["银行种类"])["银行编号"].count()
sj=sj.sort_values(ascending=False)
sj=sj.head(10)
plt.figure(figsize=(10,10))
plt.plot(sj.index,sj)
plt.title("银行种类折线图")
#代码结束
plt.savefig("image3/yhzxt.jpg")


 

第4关:各日超市销售金额绘制折线图

任务描述

本关任务:根据统计数据工作簿的日期统计数据,建立折线图

 

 

相关知识

为了完成本关任务,你需要掌握:1.如何使用matplotlib生成图表,2.如何设置图表的参数。3.datetime的使用

matplotlib库的使用

导入pyplot import matplotlib.pyplot as plt

在图表中显示中文 为了正确显示中文字体,请用以下代码更改默认设置,其中'SimHei'表示黑体字。 import matplotlib matplotlib.rcParams['font.family']='SimHei' matplotlib.rcParams['font.sans-serif'] = ['SimHei']

plt 库的显示函数 使用figure()函数创建一个全局绘图区域,并且使它成为当前的绘图对象, figsize参数可以指定绘图区域的宽度和高度,单位为英寸。 例如 plt.figure(figsize=(8,4)) 建立一个8英寸长4英寸宽的窗口

折线图的绘制

折线图就是将多个(x,y)点连接起来,生成一个折线图。 plot([x], y, [fmt], data=None,**kwargs)

函数用于绘制一条折线图,x若省略,则plot函数自动创建从0开始的 x坐标;fmt是字符串类型,用于描述颜色标志线型属性的值,格式为:'[color][marker][line]’;

设置图表参数

设置标题、轴标签和刻度标签 plt.xlim(xmin,xmax) 设置当前x轴取值范围 plt.ylim(xmin,xmax) 设置当前y轴取值范围 plt.xlabel(s) 设置当前x轴的标签 plt.ylabel(s) 设置当前y轴的标签 plt.title() 设置标题 plt.xticks(pd.date_range(起始日期,结束日期)) 设置x轴日期开始日期和结束日期 plt.gca().xaxis.set_major_formatter(matplotlib.dates.DateFormatter('%Y-%m-%d')) 设置x轴日期格式

补充:pandas.date_range(start=None, end=None, periods=None, freq='D') 该函数主要用于生成一个固定频率的时间索引,在调用构造方法时,必须指定start、end、periods中的两个参数值,否则报错。 主要参数说明: periods:固定时期,取值为整数或None freq:日期偏移量,取值为string或DateOffset,默认为'D'

例:以下代码可以设置日期格式为年-月-日,设置x轴的取值范围为2021-1-1到2021-5-31日,在x轴垂直显示2021-1-1 到2021-5-31,

 
  1. plt.gca().xaxis.set_major_formatter(datetime.date.DateFormatter('%Y-%m-%d'))
  2. plt.xlim(datetime.date(2021,1,1),datetime.date(2021,5,31))
  3. plt.xticks(pd.date_range('2021-1-1','2021-5-31'),rotation=90)

编程要求

根据提示,在右侧编辑器补充代码,根据统计数据工作簿的日期统计数据,建立折线图。

测试说明

平台会对你编写的代码进行测试: 产生的折线图如任务描述所示,x轴为日期,y轴为合计金额 图表窗口宽10高14 图表标题为日期销售 要求x轴设置标签为日期,范围为2000-5-20至2000-7-18,并显示日期 y轴设置标签为金额,范围为0到1800 提示:在绘制图形时日期标签需要垂直排列 设置rotation=90

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import pandas as pd
import datetime
df=pd.read_excel("tbsc/step1/统计数据.xlsx",sheet_name="日期统计")
#代码开始
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
plt.figure(figsize=(10,14))
plt.title("日期销售")
plt.xlabel("日期")
plt.ylabel("金额")
plt.ylim(0,1800)
plt.gca().xaxis.set_major_formatter(matplotlib.dates.DateFormatter('%Y-%m-%d'))
plt.xlim(datetime.date(2000,5,20),datetime.date(2000,7,18))
plt.xticks(pd.date_range('2000-5-20','2000-7-18'),rotation=90)
plt.plot(df["日期"].dt.date,df["合计金额"])
#代码结束
plt.savefig("image4/rqzxt.jpg")

 

第5关:四种类别的销售数量合计最高的三种商品绘制多个条形图

任务描述

本关任务:根据excel文件“类别销售”工作簿(tbsc/step2/类别销售.xlsx)的烟、零食、饮料、酒工作表的数据,找出销售数量合计最高的三种商品,建立条状图

 

 

相关知识

为了完成本关任务,你需要掌握:1.如何建立条状图,2.如何绘制子图。

建立条形图

bar(x, height, alpha=1, width, color=, edgecolor=, label=, linewidth)

参数: x:x轴的位置序列,一般采用arange函数产生一个序列; height:y轴的数值序列,也就是柱形图的高度,一般就是我们需要展示的数据; alpha:透明度 width:为柱形图的宽度 color:柱形图填充的颜色; edgecolor:图形边缘颜色 label:解释每个图像代表的含义 linewidth :边缘线的宽度

 
  1. import matplotlib
  2. import matplotlib.pyplot as plt
  3. import numpy as np
  4. y=[84.12,81.83,79.89,78.19,76.83,75.09,74.58,73.71]
  5. #设置y轴的值
  6. sj=np.linspace(1,8,8)
  7. #设置x轴的位置
  8. plt.bar(x=sj, height=y,width=0.5, color='b')
  9. #根据x和y绘制条形,条形宽度0.5,颜色蓝色
  10. plt.show()

绘制子图

subplot(numRows, numCols, plotNum) 参数: 图表的整个绘图区域被分成 numRows 行和 numCols 列 然后按照从左到右,从上到下的顺序对每个子区域进行编号,左上的子区域的编号为1 plotNum 参数指定创建的 Axes 对象所在的区域

plt.subplot(2,2,1) 图表的整个绘图区域被分成2行和2列 选择左上区域作为当前的绘图区域

编程要求

根据提示,在右侧编辑器补充代码,按要求输出图形。 图形的宽度为10,高度为14 四个子图分别为烟,饮料,零食,酒四个类别的三种销量最高的商品的销售量 柱形的横轴坐标分别为0,0.5,1,每个柱形的宽度为0.2,图例为商品名称。 在每个柱形上标识使出数量的文字(高度比柱形高1) 每个子图的标题为商品类别,x轴分别标识1,2,3 每个子图需要显示图例

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
plt.figure(figsize=(10,14))
lb=["烟","饮料","零食","酒"]
j=1
for x in lb:
    df=pd.read_excel("tbsc/step2/类别销售.xlsx",sheet_name=x)
    sj=df.groupby("商品名称")["数量"].sum()
    sj.sort_values(ascending=False,inplace=True)
    sj.index=sj.index.str.replace("\t","")
    sp=sj[:3]
    plt.subplot(2,2,j)
    for i in range(0,3):
        plt.bar(x=i*0.5, height=sj[i],width=0.2,label=sj.index[i])
        plt.text(i*0.5,sj[i]+1,sj[i])
    j=j+1
    plt.xticks([0,0.5,1],[1,2,3])
    plt.title(x)
    plt.legend()
#代码结束
plt.savefig("image5/lbzxt.jpg")

 

   

第6关:销售各类别数据绘制饼图

任务描述

本关任务:根据统计数据工作簿的类别统计数据,建立饼图。 将合计金额小于合计金额的平均值1/5的数据,统计到其他类别。

 

 

相关知识

为了完成本关任务,你需要掌握:如何建立饼图

绘制饼图

pie(x, explode=None, labels=None,colors=('b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'),    autopct=None, shadow=False,labeldistance=1.1, radius=None) 参数: x      (每一块)的比例,如果sum(x) > 1会使用sum(x)归一化 labels  (每一块)饼图外侧显示的说明文字 explode (每一块)离开中心距离 startangle  起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起 shadow  是否阴影 labeldistance label绘制位置

,相对于半径的比例, 如<1则绘制在饼图内侧 autopct 控制饼图内百分比设置,可以使用format字符串指小数点前后位数 radius  控制饼图半径

编程要求

根据提示,在右侧编辑器补充代码,生成如图所示饼图 饼图宽10高10 图表标签为合计金额大于等于合计金额的平均值1/5的类别,加上其他类别 饼图内按保留两位小数的形式显示百分比 图表标题为各类别销售分布


 


import matplotlib

matplotlib.use('Agg')

import matplotlib.pyplot as plt

import pandas as pd

df=pd.read_excel("tbsc/step3/统计数据.xlsx",sheet_name="类别统计")

matplotlib.rcParams['font.family']='SimHei'

matplotlib.rcParams['font.sans-serif'] = ['SimHei']

#代码开始

plt.figure(figsize=(10,10))

ds = df["合计金额"].mean()/5

df1 = df.loc[df["合计金额"]>=ds]

qthj=df.loc[df["合计金额"]<ds]["合计金额"].sum()

df1=df1.append({"类别":"其他","合计金额":qthj},ignore_index=True)

plt.pie(df1["合计金额"],labels=df1["类别"],autopct="%0.2f%%")

plt.title('各类别销售分布')


#代码结束

plt.savefig("image6/lbbt.jpg")


  • 24
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
一个可视化实验完整代码。 一、实验目的和要求 1、 使用API函数编制包含各种资源的Windows应用程序; 2、 实现Windows应用程序对键盘与鼠标的响应。 二、实验内容 : 1、问题描述: 创建一个菜单,其中有三个菜单项,分别为“文件”、“计算”和“帮助”,其中,“文件”菜单项包含“打开”、“保存”、“画”、“退出”等菜单选项;“计算”菜单包含“总和”、“方差”、“均方根”等菜单选项;“帮助”菜单项包含“计算总和帮助”、“计算方差帮助”和“计算均方根帮助”以及“关于”等项 。 若单击“画”菜单项,则绘出P103形。 若在用户区内按下鼠标左键,则动态创建一个包括“删除计算总和”、“添加计算平均值”和“修改计算均方差”三个菜单项的弹出式菜单,由此菜单控制“计算”菜单中菜单项删除、添加与修改。(要求新的弹出式菜单开始时不可用,按下右键后变为可用。) 单击“修改计算均方差”菜单项后,“计算”菜单下的“计算均方差”项改为“线性拟合”,单击“添加计算平均值”菜单项后,“计算”菜单中添加上了“计算平均值”菜单项 。 将光标设定为自己名字中的某个字、标设定为自己名字中的另一个字。 2、应用程序中所用到的资源、消息,简介主要函数的功能; 3、程序实现 4、操作结果
### 回答1: 实验十六是关于使用matplotlib进行数据可视化实验。在这个实验中,我们学习了如何使用matplotlib来绘制各种表,如折线、散点、柱状、饼等。我们还学习了如何对表进行美化,如添加标题、标签、网格线等。通过这个实验,我们可以更好地理解数据可视化的重要性,以及如何使用matplotlib来实现数据可视化。 ### 回答2: 实验十六matplotlib数据可视化,是指使用Python中的matplotlib数据进行可视化处理的实践。matplotlibPython中一种专门用于绘制各种静态、动态、交互式形的开源,其功能强大、使用广泛,可以同时生成多种形类型,如折线、柱状、饼、热力等等。 在实验中,首先需要导入matplotlib,并通过调用相应的函数来绘制形。通常来说,绘制形的过程包括设置形的样式、添加数据、绘制形、显示形等几个步骤。例如,我们可以通过以下代码片段绘制一个简单的折线: ``` import matplotlib.pyplot as plt # 设置形样式 plt.style.use('ggplot') # 添加数据 x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] # 绘制折线 plt.plot(x, y, linewidth=2, marker='o') # 添加标题和标签 plt.title('Sample Line Plot') plt.xlabel('X Axis') plt.ylabel('Y Axis') # 显示形 plt.show() ``` 除了基本的折线matplotlib还支持许多其他类型的形,如散点、柱状、饼、热力等等。不同的需要不同的函数和参数来绘制,但基本的绘流程是相似的。 总之,实验十六matplotlib数据可视化是一次非常有意义和实用性的实践。通过学习和掌握matplotlib使用,可以有效地对数据进行可视化处理,让数据更加直观、清晰地展现出来。同时,也为后续的数据分析、建模和预测等任务提供了重要的支持和保障。 ### 回答3: 实验十六要求我们使用matplotlib来进行数据可视化matplotlib是一个开源的绘,它提供了广泛的绘制统计表、交互式界面和动画的工具。通过matplotlib,我们可以轻松地绘制出各种统计表,从而直观地展示数据。 在实验中,我们学习了如何使用matplotlib来绘制散点、线形、柱状等多种表。我们首先导入matplotlib,并设置绘风格。然后,我们可以在绘前设置一些表的属性,如表的标题、x轴和y轴的标签、坐标轴的范围等。接着,我们可以使用各种函数来绘制表,如plot()函数用于绘制线形,scatter()函数用于绘制散点,bar()函数用于绘制柱状等。在绘制完成后,我们可以通过设置坐标轴的刻度标签来进一步美化表。 实验十六还要求我们使用工具来进行数据可视化。在实验中,我们使用了pyplot模块来绘制表。pyplot提供了用户比较友好的界面,使得我们可以很方便地绘制表、添加标签和例等一系列操作。同时,我们还学习了如何对数据进行处理,如将数据转换为DataFrame格式、进行排序和分组等。这些数据处理技巧可以帮助我们更好地理解数据,进一步优化数据的可视化效果。 总的来说,实验十六通过使用matplotlib进行数据可视化,不仅让我们感受到了python数据分析和可视化方面的优越性,而且加深了我们对数据处理和可视化的理解,增强了我们的数据分析能力和应用能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值