数据可视化---使用matplotlib绘制高级图表(2)

题目一:绘制人口金字塔图

编写程序。根据第8.6,绘制如下图的人口金字塔图。

运行代码:

#绘制人口金字塔图
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = Falsedf = pd.read_excel(r"D:\数据可视化\14\population.xlsx")
df_male = df.groupby(by='Gender').get_group("Male")
list_male = df_male['Number'].values.tolist()
df_female = df.groupby(by='Gender').get_group('Female')
list_female = df_female['Number'].values.tolist()
df_age = df.groupby('AgeGroup').sum()
count = df_age.shape[0]
y = np.arange(1, 11)
labels = []
for i in range(count):age = df_age.index[i]labels.append(age)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.barh(y, list_male, tick_label=labels, label = '男', color='#6699FF')
ax.barh(y, list_female, tick_label=labels, label = '女', color='#CC6699')
ax.set_ylabel("年龄段(岁)")
ax.set_xticks([-100000, -75000, -50000, -25000, 0, 25000, 50000, 75000, 100000])
ax.set_xticklabels(['100000', '75000', '50000', '25000', '0', '25000', '50000', '75000', '100000'])
ax.set_xlabel('人数(个)')
ax.set_title('某城市人口金字塔')
ax.legend()
plt.show()

运行结果:

题目二:绘制漏斗图

编写程序。根据第8.7,绘制如下图的漏斗图。

运行代码:

#绘制漏斗图
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
num = 5
height=0.5
x1 = np.array([1000, 500, 300, 200, 150])
x2 = np.array((x1.max()-x1)/2)
x3 = [i+j for i, j in zip(x1, x2)]
x3 = np.array(x3)
y = -np.sort(-np.arange(num))
labels = ['访问商品', '加购物车', '生成订单', '支付订单', '完成交易']
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111)
#绘制条形图
rects1 = ax.barh(y, x3, height, tick_label=labels, color='g', alpha=0.5)
#绘制辅助条形图
rects2 = ax.barh(y, x2, height, color='w', alpha=1)
ax.plot(x3, y, 'black', alpha=0.7)
ax.plot(x2, y, 'black', alpha=0.7)
notes = []
for i in range(0, len(x1)):notes.append('%.2f%%'%((x1[i]/x1[0])*100))
for rect_one, rect_two, note in zip(rects1, rects2, notes):text_x = rect_two.get_width() + (rect_one.get_width()-rect_two.get_width())/2-30text_y = rect_one.get_y() + height/2ax.text(text_x, text_y, note, fontsize=12)
ax.set_xticks([])
for direction in ['top', 'left', 'bottom', 'right']:ax.spines[direction].set_color('none')
ax.yaxis.set_ticks_position('none')
plt.show()

运行结果:

题目三:绘制桑基图

编写程序。根据第8.8,绘制如下图的桑基图

运行代码:

#绘制桑基图
from matplotlib.sankey import Sankey
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = Falseflows = [0.7, 0.3, -0.3, -0.1, -0.3, -0.1, -0.1, -0.1]
labels = ['工资', '副业', '生活', '购物', '深造', '运动', '其他', '买书']
orientations = [1, 1, 0, -1, 1, -1, 1, 0]
sankey = Sankey()
sankey.add(flows = flows, labels=labels, orientations=orientations, color='black', fc='lightgreen', patchlabel='生活消费', alpha=0.7)
#桑基图绘制完成的对象
diagrams = sankey.finish()
diagrams[0].texts[4].set_color('r')
diagrams[0].texts[4].set_weight('bold')
diagrams[0].text.set_fontsize(20)
diagrams[0].text.set_fontweight('bold')
plt.title("日常生活开销的桑基图")
plt.show()

运行结果:

题目四:绘制树状图

编写程序。根据第8.9,绘制如下图的树状图。

运行代码:

#绘制树状图
import pandas as pd
import matplotlib.pyplot as plt
import scipy.cluster.hierarchy as shc
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = Falsedf = pd.read_excel(r"D:\数据可视化\14\USArrests.xlsx")
plt.figure(figsize=(10, 6), dpi=80)
plt.title("美国各州犯罪案件的树状图", fontsize=12)
#绘制树状图
dend = shc.dendrogram(shc.linkage(df[['Murder', 'Assault', 'UrbanPop']], method='ward'), labels=df.State.values, color_threshold=100)
plt.xticks(fontsize=10.5)
plt.ylabel('案件数量(个)')
plt.show()

运行结果:

题目五:绘制华夫饼图

编写程序。根据第8.10,绘制如下图的华夫饼图。

运行代码:

#绘制华夫饼图
import matplotlib.pyplot as plt
from pywaffle import Waffle
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
#绘制华夫饼图
plt.figure(FigureClass=Waffle, rows=10, columns=10, values=[95, 5], vertical=True, colors=['#20B2AA', '#D3D3D3'],title={'label':'电影《少年的你》上座率'}, legend={'loc':'upper right', 'labels':['占座', '空座']})
plt.show()

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/22790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PySpark 小白教程 (二) PySpark SQL 简介

PySpark SQL 简介 PySpark 是 Apache Spark 的 Python API,允许通过 Python 脚本进行大数据处理和分析。PySpark SQL 是 PySpark 的一个模块,用于处理结构化数据。它提供了与 SQL 语法相似的 DataFrame API,使数据工程师和数据科学家能够轻松…

云服务器安装宝塔Linux面板全流程,新手教程!

云服务器如何宝塔Linux面板?阿小云以阿里云服务器为例安装宝塔Linux面板全流程,非常简单: 使用阿里云服务器安装宝塔面板教程,阿里云服务器网以CentOS操作系统为例,安装宝塔Linux面板,先远程连接到云服务器…

UML静态图-类图

概述 静态图包含类图、对象图和包图的主要目的是在系统详细设计阶段,帮助系统设计人员以一种可视化的方式来理解系统的内部结构和代码结构,包括类的细节、类的属性和操作、类的依赖关系和调用关系、类的包和包的依赖关系。 一、类图的表示法 类图(Cla…

轴承阀门5G智能工厂工业物联数字孪生平台,推进制造业数字化转型

轴承阀门5G智能工厂工业物联数字孪生平台作为其中的佼佼者,以其高效、智能、灵活的特点,为制造业的数字化转型提供了强有力的支撑。数字孪生技术,作为智能制造的重要一环,通过构建虚拟与现实相结合的数字化模型,实现了…

离散数学答疑 1

全功能连接词组: 最小全功能联结词组: C:祈使句 6->8是叫条件转化(置换)吗 反证法: 结论取反作为条件,并且在推理过程中,既推出有B也有反B,则推理成功 反证法算是间…

轻松追剧不费力:短剧小程序引领观剧新潮流

随着时代的进步和科技的发展,人们的娱乐方式也在不断变化。如今,短视频、短剧等碎片化内容正逐渐成为人们日常生活中的一部分。而短剧小程序,以其便捷、高效、内容丰富的特点,正在引领一场观剧新潮流。 一、短剧小程序的崛起 在快…

能获取淘宝商品简化链接的浏览器书签

零.冗长的商品链接 访问网页版本淘宝时,浏览器的地址栏显示的链接太长就像这样(此链接非真实商品): 于是使用如下方法 一.使用浏览器书签获取淘宝商品简化链接 1.新建书签 Chrome - 打开书签管理器(CtrlShiftO) - 左侧选择书签…

vue3 自定义 v-model(无参数和带参数)【setup版】(两种方案)

vue2 自定义 v-model 详见 https://sunshinehu.blog.csdn.net/article/details/136942322 vue3 自定义 v-model【方案一】 子组件 Child.vue <script setup> defineProps(["modelValue"]); const emits defineEmits(); </script><template><i…

SAP 物料主数据 PRD覆盖QAS实现-BP同步

BP分客商 客户分基本数据KNA1 角色数据 BUT100 地址数据 adrc &#xff0c;BUT021_FS 公司数据KNB1 销售视图数据 KNVV 合作伙伴 KNVP 税 KNVI 标识数据 dfkkbptaxnum 采购数据 LFM1 采购公司数据 lfb1 FORM FRM_SYNBP.DATA:LTOKEN TYPE STRING.DATA: LL_L…

【python - 函数】

一、纯函数和非纯函数 纯函数&#xff08;Pure functions&#xff09;&#xff1a;函数有一些输入&#xff08;参数&#xff09;并返回一些输出&#xff08;调用返回结果&#xff09;。 >>> abs(-2) 2 可以将内置函数 abs 描述为接受输入并产生输出的小型机器。 ab…

C# Onnx E2Pose人体关键点检测

C# Onnx E2Pose人体关键点检测 目录 效果 模型信息 项目 代码 下载 效果 模型信息 Inputs ------------------------- name&#xff1a;inputimg tensor&#xff1a;Float[1, 3, 512, 512] --------------------------------------------------------------- Outputs ---…

电商API商品数据采集接口||助力电商企业采集商品大数据提高开发效率

提高开发效率&#xff1a;电商API接口允许不同的应用程序之间高效地进行交互&#xff0c;节省了大量的人力物力成本&#xff0c;使得开发者可以将更多时间和精力集中于自身的核心业务。 增加数据安全性&#xff1a;通过对数据进行安全加密&#xff0c;API接口实现了对数据的保护…

JVM参数配置

JVM参数的三种表示方法 在jvm中&#xff0c;jvm虚拟机参数有以下三种表示方法&#xff1a; 标准参数&#xff08;-&#xff09;所有的JVM实现都必须实现这些参数的功能&#xff0c;而且向后兼容非标准参数&#xff08;-X&#xff09;&#xff0c;默认jvm实现这些参数的功能&…

罗永浩创业史!普通人也能逆袭!2024轻资产创业项目!2024普通人的出路! 2024普通人做什么行业赚钱!

罗永浩出身草根&#xff0c;一路打拼至今&#xff0c;虽然屡屡受挫但是从未妥协&#xff0c;罗永浩真正的诠释了什么叫“彪悍的人生不需要解释”&#xff01; 回顾罗永浩的传奇创业史: 1. 从新东方出来做牛博网--失败 2.创办老罗英语培训学校--失败 3.致敬乔布斯做锤子科技-…

写一个盲盒模拟器

最近想写一个小程序&#xff0c;随便写一个玩吧&#xff0c;先想了下功能&#xff1a; 1.有很多盲盒&#xff0c;可以选择模拟开启 2.自定义盲盒&#xff0c;我们可以自定义制作盲盒自己玩 3.用户界面&#xff0c;记录盲盒历史&#xff0c;可以给坏越提意见 所用技术栈&…

django 旅游服务系统-计算机毕业设计源码88939

摘 要 旅游服务系统采用采用django框架、python语言、以及Mysql数据库等技术。系统主要分为管理员和用户两部分&#xff0c;管理员管理主要功能包括&#xff1a;首页、轮播图&#xff08;轮播图管理&#xff09;、公告信息管理&#xff08;公告信息&#xff09;、资源管理&…

开源模型应用落地-LangSmith试炼-入门初体验-监控和自动化(五)

一、前言 在许多应用程序中&#xff0c;特别是在大型语言模型(LLM)应用程序中&#xff0c;收集用户反馈以了解应用程序在实际场景中的表现是非常重要的。 LangSmith可以轻松地将用户反馈附加到跟踪数据中。通常最好提供一个简单的机制(如赞成和反对按钮)来收集用户对应用程序响…

for循环

基本语法 语法&#xff1a; for ( /*初始表达式*/; /*条件表达式*/; /*增量表达式*/ ) {//循环代码逻辑; }第一个空&#xff08;初始表达式&#xff09;&#xff1a; 一般声明一个临时变量&#xff0c;用来计数用。 第二个空&#xff08;条件表达式&#xff09;&#xff1a; …

迎接未来:2024年养老新趋势展望

随着全球人口结构的变化和科技的不断进步&#xff0c;养老服务业正在经历前所未有的变革。2024年&#xff0c;我们预见到几个关键的养老新趋势将重塑我们对老年生活的认知和支持方式。以下是对这一年养老新趋势的深入分析与建议&#xff1a; 1. 智慧养老的普及 随着物联网、大…

实体关系图三种对应关系

数据库三种关系&#xff0c;一对一&#xff0c;一对多最普遍。多对多需要拆表。 数据库一对一、一对多、多对多关系_一对多关系-CSDN博客