首页 > 其他分享 >数据的分析(箱型图、柱状图、饼图、折线图、正弦虚线图)

数据的分析(箱型图、柱状图、饼图、折线图、正弦虚线图)

时间:2023-02-26 20:01:05浏览次数:32  
标签:plt sale catering 柱状图 pd 折线图 import 箱型 data

分析数据,将数据可视化

import pandas as pd
catering_sale = 'D:/人工智能&软件工程/数据挖掘与分析/data/catering_sale.xls'  # 餐饮数据
data = pd.read_excel(catering_sale, index_col = u'日期')  # 读取数据,指定“日期”列为索引列
print(data)
print(data.describe(),data.describe().max()-data.describe().min())

输出结果:

               销量
日期                
2015-03-01    51.0
2015-02-28  2618.2
2015-02-27  2608.4
2015-02-26  2651.9
2015-02-25  3442.1
...            ...
2014-08-06  2915.8
2014-08-05  2618.1
2014-08-04  2993.0
2014-08-03  3436.4
2014-08-02  2261.7

[201 rows x 1 columns]
                销量
count   200.000000
mean   2755.214700
std     751.029772
min      22.000000
25%    2451.975000
50%    2655.850000
75%    3026.125000
max    9106.440000 销量    9084.44
dtype: float64

绘制箱型图

# 代码3-2 餐饮销额数据异常值检测

import matplotlib.pyplot as plt  # 导入图像库
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

plt.figure()  # 建立图像
p = data.boxplot(return_type='dict')  # 画箱线图,直接使用DataFrame的方法
x = p['fliers'][0].get_xdata()  #  'flies'即为异常值的标签
y = p['fliers'][0].get_ydata()
y.sort()  # 从小到大排序,该方法直接改变原对象

'''
用annotate添加注释
其中有些相近的点,注解会出现重叠,难以看清,需要一些技巧来控制
以下参数都是经过调试的,需要具体问题具体调试。
'''
for i in range(len(x)):
    if i>0:
        plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i]))
    else:
        plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.08,y[i]))
plt.title('餐饮销额数据箱型图_3041')
plt.show()  # 展示箱线图

 绘制直方图

# 代码3-3 捞起生鱼片的季度销售情况
import pandas as pd
import numpy as np
catering_sale = 'D:/人工智能&软件工程/数据挖掘与分析/data/catering_fish_congee.xls'  # 餐饮数据
data = pd.read_excel(catering_sale,names=['date','sale'])  # 读取数据,指定“日期”列为索引

bins = [0,500,1000,1500,2000,2500,3000,3500,4000]
labels = ['[0,500)','[500,1000)','[1000,1500)','[1500,2000)',
       '[2000,2500)','[2500,3000)','[3000,3500)','[3500,4000)'] 

data['sale分层'] = pd.cut(data.sale, bins, labels=labels)
# aggResult = data.groupby(by=['sale分层'])['sale'].agg({"sale","sale"})
aggResult = data.groupby('sale分层').agg({'sale':'count'})

pAggResult = round(aggResult/aggResult.sum(), 2, ) * 100

import matplotlib.pyplot as plt
plt.figure(figsize=(10,6))  # 设置图框大小尺寸
pAggResult['sale'].plot(kind='bar',width=0.8,fontsize=10)  # 绘制频率直方图
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.title('季度销售额频率分布直方图_3041',fontsize=20)
plt.show()

 绘制饼图

#代码清单3-4 不同菜品在某段时间的销售量分布情况  
import pandas as pd  
import matplotlib.pyplot as plt  
catering_dish_profit = 'D:/人工智能&软件工程/数据挖掘与分析/data/catering_dish_profit.xls'
# 餐饮数据  
data = pd.read_excel(catering_dish_profit)  # 读取数据,指定“日期”列 为索引  
# 绘制饼图  
x = data['盈利']  
labels = data['菜品名']  
plt.figure(figsize=(8, 6))  
# 设置画布大小  
plt.pie(x,labels=labels)  #饼状图
# 绘制饼图  
plt.rcParams['font.sans-serif'] = 'SimHei'  
plt.title('菜品销售量分布(饼图)_3041')  
# 设置标题  
plt.axis('equal')  
plt.show()  
# 绘制条形图  
x = data['菜品名']  
y = data['盈利']  
plt.figure(figsize=(8, 4))  
# 设置画布大小  
plt.bar(x,y)  #柱状图
plt.rcParams['font.sans-serif'] = 'SimHei'  
plt.xlabel('菜品')  # 设置x轴标题  
plt.ylabel('销量')  # 设置y轴标题  
plt.title('菜品销售量分布(条形图)_3041')# 设置标题  
plt.show() 

 

 

 

 绘制折线图

# 代码3-5 不同部门在各月份的销售对比情况
# 部门之间销售金额比较
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_excel("D:/人工智能&软件工程/数据挖掘与分析/data/dish_sale.xls")
plt.figure(figsize=(12,8))
plt.plot(data['月份'],data['A部门'],color='green',label='A部门',marker='o')
plt.plot(data['月份'],data['B部门'],color='red',label='B部门',marker='s')
plt.plot(data['月份'],data['C部门'],color='skyblue',label='C部门',marker='x')
plt.legend()#显示图标
plt.ylabel('销售额(万元)')
plt.xlabel('月份')
plt.title("不同部门在各月份的销售对比情况_3041")
plt.show()

# 代码3-6 不同年份在各月份的销售对比情况
# 不同年份之间销售金额比较
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_excel("D:/人工智能&软件工程/数据挖掘与分析/data/dish_sale_b.xls")
plt.figure(figsize=(12,8))
plt.plot(data['月份'],data['2014年'],color='green',label='2014年',marker='o')
plt.plot(data['月份'],data['2013年'],color='red',label='2013年',marker='s')
plt.plot(data['月份'],data['2012年'],color='skyblue',label='2012年',marker='x')#折线图
plt.legend()#显示图标
plt.ylabel('销售额(万元)')
plt.xlabel('月份')
plt.title("不同年份在各月份的销售对比情况_3041")
plt.grid(axis="y")#增加网格
plt.show()

 正弦函数虚线图

#代码3-7 正弦函数虚线图
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,2*np.pi,50)
y = np.sin(x)
plt.plot(x,y, 'bp--')
plt.rcParams['font.sans-serif']= 'SimHei'
plt.title('虚线图_3041',fontsize=20)
plt.show()

 

标签:plt,sale,catering,柱状图,pd,折线图,import,箱型,data
From: https://www.cnblogs.com/Binnie/p/17157471.html

相关文章

  • 【算法训练营day60】LeetCode84. 柱状图中的最大的矩形
    LeetCode84.柱状图中的最大的矩形题目链接:84.柱状图中的最大的矩形独上高楼,望尽天涯路感觉和接雨水很像。慕然回首,灯火阑珊处思路如下。我们可以遍历每根柱子,以当......
  • matplotlib 柱状图
    importmatplotlibimportmatplotlib.pyplotaspltimportnumpyasnpif__name__=="__main__":#0、修改支持中文的字体plt.rcParams["font.sans-serif......
  • 16、ECharts之仪表盘、仪表盘镂空且导入外来图片、品牌车、不等距折线图、图片右侧空
    一、仪表盘<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Echarts仪表盘效果</title><scripttype="text/javascript"src="htt......
  • HTML5 canvas画一个折线图
    <body><canvasid="drawing"style="border:1pxsolid;"width="600"height="400"></canvas><scripttype="text/javascript">letdrawing=document.query......
  • 柱状图
    <!--柱状图--><template><divclass="chartBox"><!--echart图标--><divid="barChart"ref="barChart"></div></div></template><script>//引入基本模板//co......
  • 横向柱状图图
    <!--横向柱状图图--><template><divclass="chartBox"><!--echart图标--><divid="crosswiseBarChart"ref="crosswiseBarChart"></div></div></template><scr......
  • 折线图
    <!--折线图--><template><divclass="chartBox"><!--echart图标--><divid="lineChart"ref="lineChart"></div></div></template><script>//引入基本模板//......
  • 分组柱状图
    <!--分组柱状图--><template><divclass="chartBox"><!--echart图标--><divid="histogram"ref="histogram"></div></div></template><script>//引入基本模......
  • python的折线图实现的具体案例
    #导入包frompyecharts.chartsimportLinefrompyecharts.optionsimportTitleOpts,ToolboxOpts,LegendOpts,VisualMapOpts,LabelOptsimportjson#处理数据f_us=open("D......
  • echarts动态排序柱状图
    链接:https://juejin.cn/post/7149089840850534407<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metahttp-equiv="X-UA-Comp......