python数据可视化(柱状图、折线图、圆环图、饼状图)

 代码原文:

import numpy as np
import matplotlib.pyplot as plt


plt.rcParams['axes.unicode_minus']=False
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['figure.dpi']=200
plt.rcParams['figure.figsize']=(15,13)
plt.rcParams['figure.facecolor']="#2E5D8C"

#================画出条形图1==========================================================================================================
ax01 = plt.subplot2grid((3,4),(0,0))
ax01.set_title('门店销售额排行',loc='left',color='#E0FFFF')
y = np.arange(5)
x1 = np.array([0.3,0.4,0.9,1.3,1.6])
x2 = np.array([0.2,0.32,0.6,1.0,1.3])

ax01.patch.set_facecolor('#1D354A')  #设置画图区域内颜色
bar_height=0.3
plt.barh(y,x1,tick_label=['高新区店','经二十九街店','火车站店','北三环店','西二环店'],height=bar_height,color='#00CED1')
plt.barh(y+0.4,x2,tick_label=['高新区店','经二十九街店','火车站店','北三环店','西二环店'],height=bar_height,color='#00CED1')
plt.xticks([0.0,0.5,1.0,1.5,2.0])
plt.xlabel('万元',loc='right')
#================条形图2=======================================

ax02 = plt.subplot2grid((3,4),(1,0))
ax02.set_title('坪效排行',loc='left',color='#E0FFFF')
ax02.patch.set_facecolor('#1D354A')  #设置画图区域内颜色
y = np.arange(5)
x3 = np.array([23,44,98,132,141])
x4 = np.array([24,51,123,134,135])
plt.barh(y,x3,tick_label=['高新区店','经二十九街店','火车站店','北三环店','西二环店'],height=bar_height,color='#00CED1')
plt.barh(y+0.4,x4,tick_label=['高新区店','经二十九街店','火车站店','北三环店','西二环店'],height=bar_height,color='#00CED1')
plt.xticks([0.00,50.00,100.00,150.00],rotation=-20)


#=================条形图3=============================================================================================

ax03= plt.subplot2grid((3,4),(2,0))
ax03.set_title('销售额TOP10销售员',loc='left',color='#E0FFFF')
ax03.patch.set_facecolor('#1D354A')  #设置画图区域内颜色
y = np.arange(10)
x5 = np.array([1785,1789,1824,1830,1850,1860,1880,1920,2210,2310])
plt.barh(y,x5,tick_label=['Emp6','Emp44','Emp22','Emp27','Emp31','Emp39','Emp42','Emp46','Emp49','Emp45'],height=0.5,color='#00CED1')
plt.xticks([0,1000,2000,3000],rotation=-20)

#====================绘制柱状图和折线图4========================================================================================
ax04 = plt.subplot2grid((3,4),(2,1),colspan=2)
ax04.set_title('销售金额与毛利月度趋势',color='#E0FFFF')
ax04.patch.set_facecolor('#1D354A')  #设置画图区域内颜色
x = np.arange(18)
y6 = np.array([1000,2500,2100,1700,1800,1650,1550,1800,1600,2150,1700,1300,1400,2000,2600,2550,980,2130])
bar_width=0.4
#plt.bar(x,y6,tick_label=['1月','3月','5月','7月','9月','11月','1月','3月','5月','7月','9月','11月','1月','3月','5月','7月','9月','11月'],width=bar_width)
plt.bar(x,y6,tick_label=['1月','3月','5月','7月','9月','11月','1月','3月','5月','7月','9月','11月','1月','3月','5月','7月','9月','11月'],width=bar_width,color='#7C7FE3')
plt.plot(x,y6+50,marker='o',linewidth=1.5,mfc='#FF7F00',color='#00F5FF')
plt.xlabel('2017                              2018                              2019',loc='left')

#================== 绘制饼状图5============================================================================================
ax05 = plt.subplot2grid((3,4),(2,3))
ax05.set_title('厨师等级营收贡献',color='#E0FFFF')
data = np.array([9.10,26.81,64.08])
pie_labels = np.array(['高级','中级','初级'])
dev_position=[0.1,0.1,0.1]
plt.pie(data,labels=pie_labels,colors=['#FFFF00','#00FF7F','#00FFFF'],autopct='%3.1f%%',labeldistance=1.2,shadow=True,explode=dev_position,startangle=-40)

#==================绘制折线图6==================================================================================================================
ax06 = plt.subplot2grid((3,4),(1,3))
ax06.set_title('评教月度趋势',color='#E0FFFF')
ax06.patch.set_facecolor('#1D354A')  #设置画图区域内颜色
x = np.array(['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'])
y = np.array([58,59,60,62,57,56,50,42,61,57,63,65])
plt.ylim(0,80)

plt.yticks(np.arange(0,100,20))
plt.plot(x,y,marker='o',lw='2',color='#00FFFF',mfc='#00FFFF',mew='3',ms='10')
plt.xticks(['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],rotation=45)

#=====================绘制中间的圆环图7====================================================================================
ax07 = plt.subplot2grid((3,4),(0,1),colspan=2,rowspan=2)
data = np.array([3038,23383,18000,23383,730.15])
#data = np.array([1,1,1,1,1,1,1,1])

pie_labels = np.array(['客户数量','房屋租赁','人工成本','原材料成本','坪效'])
plt.pie(data,labels=pie_labels,labeldistance=1.1,wedgeprops={'width':0.15},colors=['#B23AEE','#00FF7F','#FA8072','#00FFFF','#FF0000'])


#=======================绘制四个圆环8===========================================================================================================
#01
ax08 = plt.subplot2grid((6,8),(0,6))
data = np.array([0.5,4.5])
plt.pie(data,wedgeprops={'width':0.3},colors=['#F0FFFF','#00FFFF'],radius=1.3)
plt.title('预算完成情况', fontsize=15, loc='left',color='#E0FFFF')
plt.text(0, 0.3, "毛利", ha='center', va='center', fontsize=8,color='#f7f7f7')
plt.text(0, 0, "4.5万", ha='center', va='center', fontsize=8,color='#f7f7f7')

#02
ax08 = plt.subplot2grid((6,8),(0,7))
data = np.array([730.15,269.85])
plt.pie(data,wedgeprops={'width':0.3},colors=['#6A5ACD','#F0FFFF'],radius=1.3)
plt.text(0, 0.3, "坪效", ha='center', va='center', fontsize=8,color='#f7f7f7')
plt.text(0, 0, "730.15", ha='center', va='center', fontsize=8,color='#f7f7f7')

#03
ax08 = plt.subplot2grid((6,8),(1,6))
data = np.array([3038])
plt.pie(data,wedgeprops={'width':0.3},colors=['#48D1CC'],radius=1.3)
plt.text(0, 0.3, "顾客人数", ha='center', va='center', fontsize=8,color='#f7f7f7')
plt.text(0, 0, "3038", ha='center', va='center', fontsize=10,color='#f7f7f7')
plt.text(0, -0.3, "101,27%", ha='center', va='center', fontsize=7,color='#f7f7f7')

#04
ax08 = plt.subplot2grid((6,8),(1,7))
data = np.array(['6.8','3.2'])
plt.pie(data,wedgeprops={'width':0.3},colors=['#fffe33','#F0FFFF'],radius=1.3)
plt.text(0, 0.3, "金额", ha='center', va='center', fontsize=8,color='#f7f7f7')
plt.text(0, 0, "6.8万", ha='center', va='center', fontsize=10,color='#f7f7f7')
plt.text(0, -0.3, "68.48%", ha='center', va='center', fontsize=7,color='#fffe33')



#==================设置子图间的距离9========================================================================================

# plt.tight_layout(h_pad=0.2,w_pad=1.5)
plt.show()

 输出效果图:

 辛苦敲了几天几夜的代码,终于完成了,不容易啊!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值