超简单,百行Python代码制作动态条形图跳舞

2024-01-13 05:59

本文主要是介绍超简单,百行Python代码制作动态条形图跳舞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

打码不易,不想被白嫖,有需要完整代码和GDP数据集的同学,可以对本文点赞,在看,和分享后在公众号“算法美食屋”后台回复关键字:动态图,添加作者微信获取。感谢支持。????

先上图片:

再上视频:

最后上代码:

import numpy as np 
import pandas as pd 
import matplotlib as mpl 
from matplotlib import pyplot as plt 
import matplotlib.animation as  animation import imageio
import os 
import cv2
from PIL import Imagecmap = [
'#2E91E5',
'#1CA71C',
'#DA16FF',
'#B68100',
'#EB663B',
'#00A08B',
'#FC0080',
'#6C7C32',
'#862A16',
'#620042',
'#DA60CA',
'#0D2A63']*100def bar_chart_dance(df,filename = None,title = "",figsize = (6,3.5),dpi = 144,duration = 2):assert filename is None or filename.endswith(".html"), "filename should like *.html!"fig,ax = plt.subplots(figsize=figsize,dpi=dpi)ax.set_facecolor("0.9")# 调整spinesax.spines["top"].set_visible(False)ax.spines["right"].set_visible(False)ax.spines["left"].set_visible(False)ax.spines["bottom"].set_visible(False)def plot_frame(i):# 添加文本ax.clear() ax.set_title(title)ax.text(0.05,0.85,f"{df.iloc[i-1,0]}:{df.iloc[i-1,1]}",transform = ax.transAxes, ha = "left")if i <8:xdata = df.iloc[0:i,0].tolist() ydata = df.iloc[0:i,1].tolist() colors = cmap[0:i]ax.bar(xdata,ydata,color =colors,zorder = 4)plt.xticks(range(8),xdata,horizontalalignment = "center",rotation = 0)values = df.iloc[:8,1].valuesylim = (values.min(),values.max())ax.set_ylim(ymin = ylim[0]-(ylim[1]-ylim[0])/10,ymax = ylim[1]+(ylim[1]-ylim[0])/10)ax.set_xlim(xmin = -0.6,xmax = 6.6)ax.tick_params(bottom = False,left = False,labelsize = 8,direction = "in",length = 2)else:xdata = df.iloc[i-7:i,0].tolist() ydata = df.iloc[i-7:i,1].tolist() colors = cmap[i-7:i]ax.bar(xdata,ydata,color =colors)plt.xticks(range(8),xdata,horizontalalignment = "center",rotation = 0)values = df.iloc[i-7:i,1].valuesylim = (values.min(),values.max())ax.set_ylim(ymin = ylim[0]-(ylim[1]-ylim[0])/10,ymax = ylim[1]+(ylim[1]-ylim[0])/10)ax.set_xlim(xmin = -0.6,xmax = 6.6)ax.tick_params(bottom = False,left = False,labelsize = 8,direction = "in",length = 2)my_animation = animation.FuncAnimation(fig,plot_frame,frames = range(1,len(df)+1),interval = int(duration*1000))if filename is None:try:from IPython.display import HTMLHTML(my_animation.to_jshtml())return HTML(my_animation.to_jshtml())except ImportError:passelse:my_animation.save(filename)return filenamedf = pd.read_csv("./data/gdp_china_2019.csv")
df = df[["省份","人均GDP"]].sort_values("人均GDP")
df["省份"] = [x if "自治区" not in x else x[0:2] for x in df["省份"]]
df["人均GDP"] = [int(x) for x in df["人均GDP"]]
df.index = range(len(df))html_file = "bar_chart_dance.html"
bar_chart_dance(df,filename = html_file,title = "中国大陆各省市2019人均GDP(人民币)")

主要思路是构建plot_frame函数逐帧绘制图像,再用matplotlib的animation模块制作动画。

收工。????

打码不易,不想被白嫖,有需要完整代码和GDP数据集的同学,可以对本文点赞,在看,和分享后在公众号“算法美食屋”后台回复关键字:动态图,添加作者微信获取。感谢支持。????

这篇关于超简单,百行Python代码制作动态条形图跳舞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/600455

相关文章

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Java Spring ApplicationEvent 代码示例解析

《JavaSpringApplicationEvent代码示例解析》本文解析了Spring事件机制,涵盖核心概念(发布-订阅/观察者模式)、代码实现(事件定义、发布、监听)及高级应用(异步处理、... 目录一、Spring 事件机制核心概念1. 事件驱动架构模型2. 核心组件二、代码示例解析1. 事件定义

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基