第五章. 可视化数据分析分析图表—常用图表的绘制2—直方图,饼形图

news2024/11/18 3:28:06

第五章. 可视化数据分析分析图

5.3 常用图表的绘制2—直方图,饼形图

本节主要介绍常用图表的绘制,主要包括直方图,饼形图。

1.直方图(matplotlib.pyplot.hist)

直方图,又称质量分布图,一般用横轴表示数据类型,纵轴表示分布情况。直方图是数值数据分布的精确图形表示,是一个连续变量(定量变量)的概率分布估计。

1).语法:

matplotlib.pyplot.hist.hist(x,bins=None,range=None,density=False,bottom=None,histtype='bar',align='mid',log=False, color=None,label=None,stacked=False,normed=None)

参数说明:
x:数据集,最终的直方图将对数据集进行统计
bins:统计数据间区分布情况
range:元组类型,显示的区间
density:是否显示频率统计结果,默认None,True:显示频率统计结果=区间数目/(总数*区间宽度)
histtype:可选参数:bar(默认值),barstacked,step( 使用梯形),stepfilled(对梯形内部进行填充)
align:控制柱状图的水平分布,可选参数:mid(默认值),left,right
log:y坐标轴是否选择指数刻度
stacked:是否为堆积状图

2).示例:

import pandas as pd
import matplotlib.pyplot as plt

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet4')
print(df)

# 设置画布
fig = plt.figure(figsize=(6, 4), facecolor='y')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# X,Y轴刻度线的显示方向
plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'

# 画直方图
plt.hist(df['语文'], bins=range(0, 150, 25), facecolor='c', edgecolor='black', alpha=0.7)  # alpha:透明度

# 设置网格线
plt.grid(color='0.5', linestyle='--', linewidth=1)

# 设置x,y轴坐标
plt.xlabel('分数')
plt.ylabel('学生数量')

# 设置坐标轴刻度
plt.xticks(range(0, 150, 25))

# 设置标题和图例
plt.title('成绩统计表')

# 设置图标图例
plt.legend(['语文'],
           loc='upper right')  # 手动添加图例时,有时文本会显示不全,在文本后面加一个逗号(,)可解决,例如('图书采购价目',)

# 调整图表与画布边缘间距
plt.subplots_adjust(left=0.15, bottom=0.15, right=0.9, top=0.9)

# 坐标轴的刻度线向内显示还是向外显示
plt.tick_params(left=True, bottom=True, right=False, top=False)

# 显示图像
plt.show()

清单.xlsx表格中的数据
在这里插入图片描述

结果展示:
在这里插入图片描述

2.饼形图(matplotlib.pyplot.pie)

饼形图常用来显示各个部分在整体中所占的比例。

1).语法:

matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=0, 0, frame=False, rotatelabels=False, hold=None, data=None)

参数说明:
x:每一块饼形图的比例,如果sum(x)>1,会使用sum(x)进行归一化
explode:每一块饼形图离中心的距离
labels:每一块饼形图外侧显示的说明文字
colors:每个冰块的颜色。类数组结构。颜色会循环使用。默认值为None,使用当前色彩循环。
autopct:设置饼图百分比,可以使用格式化字符串或format函数,如‘%.2f’:保留小数点后两位
pctdistance:指定百分比的位置刻度,默认为0.6
shadow:饼图下是否有阴影。布尔值。默认值为False。
labeldistance:标记的绘制位置,相当于,相对于radius的比例,默认值:1.1,<1:绘制在饼图的内侧
startangle:饼块起始角度。浮点数。默认值为0,即从x轴开始。角度逆时针旋转。
radius:饼图半径。浮点数。默认值为1.
counterclock:角度是否逆时针旋转。布尔值。默认值为True。
wedgeprops:饼块属性,字典类型,字典传递给wedge对象用来画一个饼图,例如wedgeprops={‘linewidth’: 2},设置线宽为2
textprops:设置标签和比例文字的格式,字典类型
center:饼图中心坐标。(float,float)浮点数二元组。默认值为(0,0)。
frame:是否绘制子图边框。布尔值。默认为False。
rotatelabels:True:旋转到每个标签到指定的角度,默认为False。

2).示例:

清单.xlsx表格中的数据
在这里插入图片描述

  • 示例1:基础饼形图
import pandas as pd
import matplotlib.pyplot as plt

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet1')
print(df)

# 设置画布
fig = plt.figure(figsize=(6, 4), facecolor='white')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

labels = ['VDA听者文摘', '疯狂英语900句', '小狗钱钱', '汤姆·索亚历险记', '母亲']
# 基础饼形图
plt.pie(df['销量占比'], labels=df['收货地址(省)'], labeldistance=1.1, autopct='%.2f%%', startangle=90, radius=0.8,
        center=(0, 0), textprops={'fontsize': 9, 'color': 'k'}, pctdistance=0.6)

# 设置标题和图例
plt.title('销量')

结果展示:
在这里插入图片描述

  • 示例2:分裂饼形图
import pandas as pd
import matplotlib.pyplot as plt

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet1')
print(df)

# 设置画布
fig = plt.figure(figsize=(6, 4), facecolor='white')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

labels = ['VDA听者文摘', '疯狂英语900句', '小狗钱钱', '汤姆·索亚历险记', '母亲']


# 分裂饼形图
explode = [0, 0, 0, 0, 0.1]
plt.pie(df['销量占比'], labels=df['收货地址(省)'], explode=explode, labeldistance=1.1, autopct='%.2f%%', startangle=90,
        radius=0.8, center=(0, 0), textprops={'fontsize': 9, 'color': 'k'}, pctdistance=0.6)

# 设置标题和图例
plt.title('销量')

结果展示:
在这里插入图片描述

  • 示例3:立体感带阴影的饼形图
import pandas as pd
import matplotlib.pyplot as plt

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet1')
print(df)

# 设置画布
fig = plt.figure(figsize=(6, 4), facecolor='white')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

labels = ['VDA听者文摘', '疯狂英语900句', '小狗钱钱', '汤姆·索亚历险记', '母亲']

# 立体感带阴影的饼形图
explode = [0, 0, 0, 0, 0.1]
plt.pie(df['销量占比'], labels=df['收货地址(省)'], explode=explode, labeldistance=1.1, autopct='%.2f%%', startangle=90,shadow=True,
        radius=0.8, center=(0, 0), textprops={'fontsize': 9, 'color': 'k'}, pctdistance=0.6)

# 设置标题和图例
plt.title('销量')

结果展示:
在这里插入图片描述

  • 示例4:环形图
import pandas as pd
import matplotlib.pyplot as plt

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet1')
print(df)

# 设置画布
fig = plt.figure(figsize=(6, 4), facecolor='white')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

labels = ['VDA听者文摘', '疯狂英语900句', '小狗钱钱', '汤姆·索亚历险记', '母亲']

# 环形图
plt.pie(df['销量占比'], labels=df['收货地址(省)'], labeldistance=1.1, autopct='%.2f%%', startangle=90,
        shadow=True,radius=0.8, wedgeprops={'width':0.2}, center=(0, 0), textprops={'fontsize': 9, 'color': 'k'}, pctdistance=0.6)

# 设置标题和图例
plt.title('销量')

结果展示:
在这里插入图片描述

  • 示例5:内嵌环形图
import pandas as pd
import matplotlib.pyplot as plt

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet1')
print(df)

# 设置画布
fig = plt.figure(figsize=(6, 4), facecolor='white')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

labels = ['VDA听者文摘', '疯狂英语900句', '小狗钱钱', '汤姆·索亚历险记', '母亲']

# 内嵌环形图
# 内环
plt.pie(df['折扣率'],  labeldistance=1.1, autopct='%.2f%%', startangle=90,
        shadow=True, radius=0.6, wedgeprops={'width': 0.2}, center=(0, 0), textprops={'fontsize': 9, 'color': 'k'},
        pctdistance=0.6)

# 外环
plt.pie(df['销量占比'],labeldistance=1.1, autopct='%.2f%%', startangle=90,
        shadow=True, radius=0.8, wedgeprops={'width': 0.2}, center=(0, 0), textprops={'fontsize': 9, 'color': 'k'},
        pctdistance=0.8)

# 设置标题和图例
plt.title('销量')

# 设置图标图例
plt.legend(df['收货地址(省)'], title='省份',
           loc='upper right', frameon=False, bbox_to_anchor=(1.3, 1.1))  # 手动添加图例时,有时文本会显示不全,在文本后面加一个逗号(,)可解决,例如('图书采购价目',)

结果展示:
在这里插入图片描述

注意:代码中所涉及到的函数和参数,在图表的常用设置1 和 图表的常用设置2 有所介绍

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

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

相关文章

[附源码]JAVA毕业设计农产品的物流信息服务平台(系统+LW)

[附源码]JAVA毕业设计农产品的物流信息服务平台&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 …

MyBatis开发的详细步骤

推荐教程&#xff1a;SSM框架 一、什么是Mybatis 1.mybatis 是一个优秀的基于java的持久层框架&#xff0c;它内部封装了jdbc&#xff0c;使开发者只需要关注sql语句本身&#xff0c;而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。 2.mybatis通过x…

Windows下使用labelme标注图像

安装参考链接&#xff1a;https://github.com/wkentaro/labelme 一、安装Anaconda Windows下安装labelme需要借助Anaconda环境&#xff0c;安装很简单 https://www.anaconda.com/download/ 先进入官网&#xff0c;然后点击Windows系统版本 下载完成之后&#xff0c;就按照提…

[附源码]计算机毕业设计社区生活废品回收APPSpringboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

网站都变成灰色,其实几行代码就搞定了!

最近&#xff0c;全站和各个App的内容都变成了灰色&#xff0c;包括按钮、图片等等。 这时候我们可能会好奇这是怎么做到的呢&#xff1f; 有人会以为所有的内容都统一换了一个 CSS 样式&#xff0c;图片也全换成灰色的了&#xff0c;按钮等样式也统一换成了灰色样式。但你想想…

Java入门教程(11) ——基本数据类型

文章目录1.数据类型22.1 整型2.2 浮点型2.3 字符型2.4 布尔型1.数据类型 分为基本数据类型和引用数据类型 如图示&#xff1a; 2 2.1 整型 byte 1字节 short 2 字节 int 4字节 long 8字节. Java 整型常数默认为 int 型&#xff0c;声明 long 型常量可以后加‘ l ’或‘ L ’…

kube-OVN总体架构

本文档将介绍 Kube-OVN 的总体架构&#xff0c;和各个组件的功能以及其之间的交互。 总体来看&#xff0c;Kube-OVN 作为 Kubernetes 和 OVN 之间的一个桥梁&#xff0c;将成熟的 SDN 和云原生相结合。 这意味着 Kube-OVN 不仅通过 OVN 实现了 Kubernetes 下的网络规范&#x…

热销产品缺货,滞销产品积压?WMS系统如何打造智能仓储

仓库是企业物流系统中的一个关键环节&#xff0c;涵盖出库、入库、质检等各个流程。传统的仓储模式单一、反应迟钝&#xff0c;难以适应企业的数字化经营要求。 如何在最小的人力资源下&#xff0c;最大限度地发挥仓库的价值&#xff0c;在最小的成本下&#xff0c;最大限度地利…

【服务器数据恢复】Zfs文件系统误删除数据的数据恢复案例

服务器故障&#xff1a; 一台zfs文件系统服务器&#xff0c;运维人员误操作删了服务器上的数据&#xff0c;用户联系到我们数据恢复中心要求恢复数据。 服务器数据恢复过程&#xff1a; 1、服务器数据恢复工程师对故障服务器所有硬盘进行扇区级镜像备份&#xff0c;后续的数据…

Kafka核心技术与实战 04

Kafka 不再是一个单纯的消息引擎系统&#xff0c;而是能够实现精确一次&#xff08;Exactly-once&#xff09;处理语义的实时流处理平台。 Kafka版本 Apache Kafka&#xff0c;也称社区版 Kafka。优势在于迭代速度快&#xff0c;社区响应度高&#xff0c;使用它可以让你有更高…

美团一面:为什么线程崩溃崩溃不会导致 JVM 崩溃

网上看到一个很有意思的美团面试题&#xff1a;为什么线程崩溃崩溃不会导致 JVM 崩溃&#xff0c;这个问题我看了不少回答&#xff0c;但发现都没答到根上&#xff0c;所以决定答一答&#xff0c;相信大家看完肯定会有收获&#xff0c;本文分以下几节来探讨 线程崩溃&#xff0…

公众号美食文案怎么写?怎么写才能吸引人?

美食类公众号的文案还是比较难写的&#xff0c;毕竟文案没有图片那么直观&#xff0c;让用户看着就有食欲。 公众号美食文案怎么写&#xff1f;怎么写才能吸引人&#xff1f;怎么写才能在字里行间透露着美食的诱惑力&#xff1f; 作为一个有着十年丰富经验的文案人&#xff0c…

Java编程最常见的208道面试题,一文解析

相比与这些问题&#xff0c;我的这 208 道面试题具备以下优点&#xff1a; 披沙拣金提炼出每个 Java 模块中最经典的面试题&#xff1b;答案准确&#xff0c;每个题目都是我仔细校对过的&#xff1b;接近最真实的企业面试&#xff0c;题目实用有效果&#xff1b;难懂的题目&am…

SAP IDoc状态70 - This IDoc is saved as the original of an edited document.

SAP IDoc状态70 - This IDoc is saved as the original of an edited document. 根据SAP的标准逻辑&#xff0c;一个IDoc一旦被修改了&#xff0c;SAP系统会自动创建一个新的IDoc(状态70)来存储IDoc修改日志。 比如idoc # IDoc 208828452&#xff0c;由于库存不够&#xff0c;所…

SQL注入【SQLi-LABS Page-1(Basic Challenges Less1-Less22)】

文章目录前言sqlmapless-1&#xff08;基于错误的GET单引号字符型注入&#xff09;less-2&#xff08;基于错误的GET整型注入&#xff09;less-3&#xff08;基于错误的GET单引号变形注入&#xff09;less4&#xff08;基于错误的GET双引号字符型注入&#xff09;less5&#xf…

Docker的资源管理控制(CPU、内存、磁盘IO配额)

目录 一、CPU 资源控制 1、设置CPU使用率上限 &#xff08;1&#xff09;查看CPU使用率 &#xff08;2&#xff09;进行CPU压力测试 &#xff08;3&#xff09;设置CPU使用率 2、设置CPU资源占用比&#xff08;设置多个容器时才有效&#xff09; 3、设置容器绑定指定的CP…

word如何转化成pdf,最新图文教学,学会只需1分钟

​在日常生活中&#xff0c;我们经常会遇到需要将word文档转换成PDF格式的情况。那word如何转化成pdf呢&#xff1f;word文件转换成PDF并不难&#xff0c;只要你操作正确&#xff0c;就可以将其快速地转化成PDF。下面就给大家分享一下操作步骤吧。 一、第一步&#xff0c;打开需…

嵌入式开发--STM32硬件SPI驱动74HC595

本篇是硬件SPI口驱动74HC595。 IO口模拟时序软件驱动74HC595见这一篇文章&#xff1a;嵌入式开发–IO口扩展–74HC595 硬件连接如下&#xff1a; 只用了一个74HC595&#xff0c;如果需要多个74HC595级联&#xff0c;参考前面的链接&#xff0c;里面有电路&#xff0c;不需要额…

KubeEdge云原生边缘计算公开课02——云原生边缘计算千行百业核心应用

KubeEdge云原生边缘计算公开课02——云原生边缘计算千行百业核心应用张琦&#xff1a;云原生边缘计算产业发展现状与趋势展望——KubeEdge云原生边缘计算产业发展概述一、云原生边缘计算的产业场景1.云计算与边缘计算的对比2.传统的把边缘计算逐步向CloudNative技术演进3.传统本…

cookie加密解密和保证数据完整性(不被篡改)

cookie加密解密和保证数据完整性 AES-128-CBC加密算法 AES-128-CBC是一种分组对称加密算法&#xff0c;即用同一组key进行明文和密文的转换&#xff0c;以128bit为一组&#xff0c;128bit16Byte&#xff0c;意思就是明文的16字节为一组对应加密后的16字节的密文。 若最后剩余…