数据可视化(八)堆叠图,双y轴,热力图

news2024/11/29 0:51:24

1.双y轴绘制

#双Y轴可视化数据分析图表
#add_subplot()
df=pd.read_excel('mrbook.xlsx')
x=[i for i in range(1,7)]
y1=df['销量']
y2=df['rate']
#用来正常显示负号
plt.rcParams['axes.unicode_minus']=False
fig=plt.figure()
ax1=fig.add_subplot(1,1,1)#一行一列,第一个区域
plt.title('销量情况对比')
plt.xticks(x,[str(i)+'月' for i in range(1,7)])
ax1.bar(x,y1)
#设置y轴标签
ax1.set_ylabel('销售(册)')
#共享x轴,添加一条y轴坐标
ax2=ax1.twinx()
#绘制折线图
ax2.plot(x,y2,color='black',linestyle='--',marker='o',linewidth=2)
#设置y轴标签
ax2.set_ylabel('增长率')
#添加文本
for a,b in zip(x,y2):
    plt.text(a,b+0.2,'%.2f'%b,ha='center',va='bottom',fontsize=10,color='r')
plt.show()

2.堆叠柱形图 

 

 类别中,有不同的类别分类

import matplotlib.pyplot as plt
import pandas as pd
import openpyxl
import random
import numpy as np
import seaborn as sns

#seaborn绘制常用图表

#堆叠柱形图
sns.set_style('darkgrid')
df=pd.read_excel('mrtb_data.xlsx')
#根据类别分组,计算每组中,卖家实际支付金额的总和
df1=df.groupby(['类别'])['买家实际支付金额'].sum()
#将消费总金额转换成列表
num=np.array(list(df1))
#根据类别和性别分组,统计不同买家的人数,并重置索引
df2=df.groupby(['类别','性别'])['买家会员名'].count().reset_index()
#提取出男性的数据
men_df=df2[df2['性别']=='男']
women_df=df2[df2['性别']=='女']
#将男性,女性买家数据转换成列表
men_lst=list(men_df['买家会员名'])
women_lst=list(women_df['买家会员名'])
#计算男性用户比例
ratio=np.array(men_lst)/(np.array(men_lst)+np.array(women_lst))
#设置输出精度
np.set_printoptions(precision=2)
#计算男女生的消费金额
men=num*ratio
women=num*(1-ratio)
#删除类别中重复数据
df3=df2.drop_duplicates(['类别'])
#转换成列表
name=list(df3['类别'])

#绘制图表
width=0.5
#产生[0,1,2,3,4,,,,]
x=np.arange(len(name))
#男性柱状图
plt.bar(x,men,width=width,color='slateblue',label='男性用户')
#女性
plt.bar(x,women,width=width,color='orange',label='女性用户',bottom=men)
#设置标签
plt.xlabel('消费类别')
plt.ylabel('男女分布')
plt.xticks(x,name,rotation=20)
#在图标上显示数字
for a,b in zip(x,men):
    plt.text(a,b,'%.0f'%b,ha='center',va='top',fontsize=12)
for a,b,c in zip(x,women,men):
    plt.text(a,b+c,'%.0f'%b,ha='center',va='bottom',fontsize=12)
#添加图例
plt.legend()
plt.show()

 3.热力图

 

#热力图
sns.set_style('darkgrid')

df=pd.read_csv('data.csv',encoding='gb2312')
plt.figure(figsize=(6,6))
seris=df['中奖号码'].str.split('  ',expand=True)
#对每一位中奖号码出现的次数,即每一列中不同数字出现的次数
df1=df.groupby(seris[0]).size()#第一列
df2=df.groupby(seris[1]).size()#第二列
df3=df.groupby(seris[2]).size()#第三列
df4=df.groupby(seris[3]).size()#第一列
df5=df.groupby(seris[4]).size()#第一列
df6=df.groupby(seris[5]).size()#第一列
df7=df.groupby(seris[6]).size()#第一列
#横向合并
data=pd.concat([df1,df2,df3,df4,df5,df6,df7],axis=1,sort=True)
#空值处理,将nan替换为0,代表一次都没有出现
data=data.fillna(0)
#浮点数转换成整数
data=data.round(0).astype(int)

#绘制热力图
plt.title('统计2014~2019年双色球中奖数字热力图')
#绘制annot数值是否显示
#fmt参数控制数据的格式,lw表示线的宽度
sns.heatmap(data,annot=True,fmt='d',lw=0.5)
#设置x与y轴标签
plt.xlabel('中奖号码位数')
plt.ylabel('双色球数字')
plt.xticks(range(0,7),['第'+str(i)+'位' for i in range(1,8)],ha='left')
plt.show()

 

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

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

相关文章

《Zookeeper》从零开始学Zookeeper源码(二)之数据序列化与通信协议

目录 序列化与反序列化通信协议请求头的数据结构响应头的数据结构 序列化与反序列化 zookeeper的客户端与服务端、服务端与服务端之间会进行一系列的网络通信,在进行数据的传输过程中就涉及到序列化与反序列化,zookeeper使用Jute作为它的序列化组件&…

FreeRTOS的线程间通信

一、分类 FreeRTOS的线程间通信分为这几大类 由于我还在学习中,目前显从信号开始记录学习 二、逐块讲解 1、信号(osSignalWait osSignalSet) FreeRTOS从V8.2.0版本开始提供任务通知这个功能,每个任务多有一个32位的通知值&am…

OLAP ModelKit Crack,ADO.NET和IList

OLAP ModelKit Crack,ADO.NET和IList OLAP ModelKit是一个多功能的.NET OLAP组件,用C#编写,只包含100%托管代码。它具有XP主题的外观,并能够使用任何.NET数据源(ADO.NET和IList)。借助任何第三方组件(尤其是图表组件)呈现数据的能力扩展了产品…

flink kafka消费者如何处理kafka主题的rebalance

背景: 我们日常使用kafka客户端消费kafka主题的消息时,当消费者退出/加入消费者组,kafka主题分区数有变等事件发生时,都会导致rebalance的发生,此时一般情况下,如果我们不自己处理offset,我们不…

那些被忽视的Python核心功能...

最实用、最简单、最优美……近些年,大家学习Python的热潮从未消退;无论是数据分析还是科学计算都少不了Python的身影。 Python也没有让人失望,Java用100行代码写出的程序,用Python十行就能搞定! 当你要说Hello World…

银河麒麟QT连接DM8数据库

1. 安装达梦8 官网下载, 按照官方文档进行安装即可. 2. 安装unixodbc 1> 下载odbc安装包 unixODBC-2.3.7pre.tar.gz 2> 解压 tar -xvf unixODBC-2.3.7pre.tar.gz3> 编译 ./configure -prefix /usr/local make && make install4> 查找配置 odbcinst -j5…

Redis集群部署(docker-compose)

更多更新信息请关注“技术客格”公众号 使用3主+3从的部署方式 一、服务器规划 序号 服务器 端口 节点名称 备注 1 192.168.1.120 6179 redis-1 2 192.168.1.1206279 redis-2 3 192.168.1.1206379 redis-3 4 192.168.1.1206479 redis-4 5 192.168.1.1206579 redis-5 6 192.…

多线程的创建,复习匿名内部类,Thread的一些方法,以及lambda的变量捕捉,join用法

一、💛 Java的Thread类表示线程 1.创建类,继承Thread重写run方法 2.创建类,实现Runnable重写run方法 3.可以继承Thread重写run基于匿名内部类 4.实现Runnable重写run基于匿名内部类 5.lamdba表达式表示run方法的内容(推荐&#x…

一、安全世界观

文章目录 1、 Web安全简史1.1 中国黑客简史1.2 黑客技术的发展历程1.3 web安全的兴起 2、黑帽子、白帽子3、安全的本质4、安全三要素5、如何实施安全评估5.1 资产等级划分5.2 威胁分析5.3 风险分析5.4 设计安全方案 6、白帽子兵法6.1 Secure By Default6.2 纵深防御原则6.3 数据…

在Raspberry Pi 4上安装Ubuntu 20.04 + ROS noetic(不带显示器)

在Raspberry Pi 4上安装Ubuntu 20.04 ROS noetic(不带显示器) 1. 所需设备 所需设备: 树莓派 4 B 型 wifi microSD 卡:最小 32GB MicroSD 转 SD 适配器 (可选)显示器,鼠标等 2. 树莓派…

积累常见的有针对性的python面试题---python面试题001

1.考点列表的.remove方法的参数是传入的对应的元素的值,而不是下标 然后再看remove这里,注意这个是,删除写的那个值,比如这里写3,就是删除3, 而不是下标. remove不是下标删除,而是内容删除. 2.元组操作,元组不支持修改,某个下标的内容 可以问他如何修改元组的某个元素 3.…

Git Submodule 更新子库失败 fatal: Unable to fetch in submodule path

编辑本地目录 .git/config 文件 在 [submodule “Assets/CommonModule”] 项下 加入 fetch refs/heads/:refs/remotes/origin/

sigmoid ReLU 等激活函数总结

sigmoid ReLU sigoid和ReLU对比 1.sigmoid有梯度消失问题:当sigmoid的输出非常接近0或者1时,区域的梯度几乎为0,而ReLU在正区间的梯度总为1。如果Sigmoid没有正确初始化,它可能在正区间得到几乎为0的梯度。使模型无法有效训练。 …

如何让子组件,router-view,呈现左右分布格局

1.用浮动进行浮动布局,定义一个大盒子,把浮动的样式写在公共样式里(这里在main.js里定义一下全局布局)。 2、能够在右边显示了

小研究 - MySQL 分区分表的设计及实(一)

随着信息技术的快速发展,数据量越来越大,海量的表查询操作需要消耗大量的时间,成为影响数据库访问性能提高的主要因素。为了提升数据库操作的查询效率和用户体验,在关系型数据库管理系统(MySQL)中通过 range 分区和 Merge 存储&am…

因果推断(三)双重差分法(DID)

因果推断(三)双重差分法(DID) 双重差分法是很简单的群体效应估计方法,只需要将样本数据随机分成两组,对其中一组进行干预。在一定程度上减轻了选择偏差带来的影响。 因果效应计算:对照组y在干预…

【kafka消息查询】kafka消费不到数据,写入端伙伴说他写入了,而且没有报错,如何来切割是写入的问题还是消费的问题

文章目录 前言情景再现如何确定是否写入了为什么出现不能写入总结 前言 kafka消费不到消息,如何查询界定是生产端的问题还是消费端的问题,特别是场景上下文已经丢失了的时候。 情景再现 使用命令: bin/kafka-console-consumer.sh --bootstr…

前端js用正则写一个车牌号验证

var car_number2 (rule, value, callback) > {var plateNumber /^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏…

simpleNet

文章目录 simpleNet0. 背景1. 主要贡献2. 网络3. 方法细节3.1 Feature Extractor 特征提取器3.2 Features Adaptor特征适配器3.3 Anomalous Feature Generator 异常特征生成器3.4 Discriminator 鉴别器3.5 Loss function and Training 损失方程和训练3.6 Inference and Scoring…

网信办制定个人信息保护新规,企业应采取哪些举措实现身份审计合规

近日,国家互联网信息办公室就《个人信息保护合规审计管理办法(征求意见稿)》面向社会公开征求意见。征求意见稿指出,办法根据《中华人民共和国个人信息保护法》等法律法规制定,旨在指导、规范个人信息保护合规审计活动…