python数据可视化实验:matplotlib绘制高级图表

1.用数据库或excel文件保存某公司的10种产品的每月销售数据,统计不同产品在2022和2023年的累计销售额,分别利用哑铃图和金字塔图进行展示

import numpy as np 
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

df = pd.read_excel("F:/DaiMa/MyJupyter/data/sale.xlsx")
newdf = df.set_index('产品')
#display(newdf)
data2022=newdf.iloc[:,0:12].sum(axis=1)
data2023=newdf.iloc[:,12:].sum(axis=1)
# display(data2022,data2023)
#设置画布
fig, ax = plt.subplots(1, 2, figsize=(15, 5))

ax1=ax[0]
ax1.set_xlabel("销售总额")
ax1.set_ylabel("产品名")
ax1.set_title("2022年与2023年某公司产品销售总额(哑铃图)")
#绘制散点图(哑铃图的两头)
ax1.scatter(y=data2022.index, x=data2022, color='orange')
ax1.scatter(y=data2023.index, x=data2023, color='yellow')
#绘制水平线(哑铃图的线头)
ax1.hlines(y=data2022.index, xmin=data2022, xmax=data2023, colors='skyblue', linewidth=2)
# y: 单个数值或一组数值,表示要绘制水平线的 y 坐标。
# xmin: 数值或数组,表示水平线段的起始 x 坐标。
# xmax: 数值或数组,表示水平线段的结束 x 坐标。
# colors: 线段的颜色,默认为黑色('k'),也可以是颜色名称或颜色代码。
# linestyles: 线段的线型,默认为实线('solid'),也可以是其他线型,如虚线('dashed')、点线('dotted')等。
# linewidth: 线段的宽度,默认为 1。

ax2=ax[1]
ax2.set_xlabel("销售总额")
ax2.set_ylabel("产品名")
ax2.set_title("2022年与2023年某公司产品销售总额(金字塔图)")
def fushu(x):
    return -x;
ndata2022=data2022.apply(fushu)
# 绘制金字塔图
ax2.barh(y=data2022.index, width=ndata2022, label='2022年', color='#6699FF') 
ax2.barh(y=data2023.index, width=data2023, label='2023年', color='#CC6699')
ax2.set_xticks([-6000, -4000, -2000,0, 2000, 4000, 6000])
ax2.set_xticklabels(['6000', '4000', '2000','0', '2000', '4000', '6000'])
ax2.legend(loc="best",bbox_to_anchor=(1,1))
plt.show()

运行结果:

2. 以时长2周10个工作日为例分析并制定本学期数据可视化实训计划,利用甘特图进行展示

import numpy as np
import matplotlib.pyplot as plt
ticks = np.array(['报告提交', '答辩', '报告撰写', '数据结果分析', 
                  '数据录入', '代码撰写', '数据查找', '项目确定'])
y_data = np.arange(1, 9)
x_data = np.array([0.5, 0.5, 2.5, 0.5, 0.5, 4.5, 1, 1])
fig,ax = plt.subplots(1, 1)
ax.barh(y_data, x_data, tick_label=ticks, left=[9.5, 9, 6.5, 6.5, 6.5, 2, 1, 0], color='orange') 
#[ax.spines[i].set_visible(False) for i in ['top', 'right']]
ax.set_xticks([0,1,2,3,4,5,6,7,8,9,10])
ax.set_title("数据可视化实训计划")
ax.set_xlabel("日期")
ax.grid(alpha=0.5, axis='x')
plt.show()

运行结果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你在学习Python数据分析的时候,是否遇到过在这些问题? 别慌!这些都是数据科学入门常见问题。从入门到上手再到解决实际问题,数据科学看似复杂,但如果你掌握了正确的学习方法,完全可以极速入门。 【职场人进阶必备  数据分析/挖掘一点通】 如今的职场上,90%以上的岗位都会涉及数据问题。 以产品文案岗位为例,在一个新产品推向市场之前,文案需要考虑: 此时,可以关注一下市场上已有的相关产品推广数据,如:哪些文案打开率更高?哪些文案转化更好?目标用户的购买习惯如何? 以此作为下一步工作开展的依据,对产品文案工作者来说,可以少走很多弯路。 学会数据分析/挖掘,等于站巨人的肩膀上工作,轻松且高效。 【爬虫、数据分析、数据挖掘知识点三合一】数据问题一网打尽 本课程将知识点悉数融入实战项目,不空谈语法,帮助学员在实践中获取知识,目标是:让学员能自主完成数据采集、数据分析与数据挖掘。 学习完本课程,你可以熟练掌握: 【实战案例超实用,轻松拥有“睡后收入”!】 本课程以股票案例为主线,串联爬虫、数据分析以及数据挖掘多个知识点。 通过实战案例演练,你可以全面掌握股票收益的分析和预判方法,在收获新技能的同时,也有机会获得“睡后收入”! 四大优势: 三重权益:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值