matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)-柱形数据视频[通俗易懂]

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)-柱形数据视频

大家好,又见面了,我是全栈君。

 matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)-柱形数据视频

 

在之前已经告诉大家如何生成会动的数据统计图,这次我们把它应用到数据排行中吧!

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)-柱形数据视频[通俗易懂]

01— 柱形图实现

第一步:实现一个最简单柱形统计图

from matplotlib import pyplot#导入模块
​
fig, ax = pyplot.subplots()#返回一个包含figure和axes对象的元组,将元组分解为fig和ax两个变量
def  graph(num):
    ax.barh(1, num, color='#adb0ff')  # 绘制水平方向的条形图barh()
    ax.barh(3, num, color='#ffb3ff')  # 绘制水平方向的条形图barh()
    ax.barh(5, num, color='#90d595')  # 绘制水平方向的条形图barh()
    pyplot.show()
graph(1)

实现结果如图所示:我们绘画了三条统计图。

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)-柱形数据视频[通俗易懂]

第二步:给每条柱体加上文字。

ax.text(num,1, "广东省", size=14, weight=600, ha='right', va='bottom')#添加文字并设置样式

第三步:解决乱码:

这里因为中文会出现乱码,因此我们还需要做出特殊处理

from pylab import mplmpl.rcParams['font.sans-serif'] =["SimHei"]mpl.rcParams['axes.unicode_minus'] = False

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)-柱形数据视频[通俗易懂]

第四步:赋予每条柱形不同的值,使他看起来在变动。

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)-柱形数据视频[通俗易懂]

我们这里引入了math模块,随便表示一下好了。

 

第五步,让我们的数据动起来:

结果发现一个问题,动是动起来了,但是文字还在。如何处理呢。

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)-柱形数据视频[通俗易懂]

from matplotlib import animation
from matplotlib import pyplot
from pylab import mpl
import math
​
mpl.rcParams['font.sans-serif'] =["SimHei"]
mpl.rcParams['axes.unicode_minus'] = False
fig, ax = pyplot.subplots()#返回一个包含figure和axes对象的元组,将元组分解为fig和ax两个变量
​
def  graph(num):
    ax.clear()#清除,不叠加
    ax.barh(1, num, color='#adb0ff')  # 绘制水平方向的条形图barh()
    ax.text(num,1, "广东省", size=14, weight=600, ha='right', va='bottom')#添加文字并设置样式
    ax.barh(3, num / math.pi, color='#ffb3ff')
    ax.text(num / math.pi, 3, "北京省", size=14, weight=600, ha='right', va='bottom')
    ax.barh(5, num/math.tan(1), color='#90d595')
    ax.text(num/math.tan(1),5, "云南省", size=14, weight=600, ha='right', va='bottom')
    pyplot.title('人口工作情况对比')#添加图标题
animator=animation.FuncAnimation(fig, graph, frames=range(1,100),interval=1)
pyplot.show()#移动到函数外面,不然不会动态显示

 

我们继续来完善一下,做出动态的效果:

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)-柱形数据视频[通俗易懂]

 

02— 完整代码

注意:保存视频,或者保存图片,需要使用到插件,并设置环境变量​。

windows 如何安装ffmpeg

from matplotlib import animation
from matplotlib import pyplot
from pylab import mpl
import math
​
mpl.rcParams['font.sans-serif'] =["SimHei"]
mpl.rcParams['axes.unicode_minus'] = False
fig, ax = pyplot.subplots()#返回一个包含figure和axes对象的元组,将元组分解为fig和ax两个变量
​
def  graph(num):
    ax.clear()
    if num<50:
        ax.barh(1, num-1, color='#adb0ff')  # 绘制水平方向的条形图barh()
        ax.text(num-1,1, "广东省", size=14, weight=600, ha='right', va='bottom')#添加文字并设置样式
        ax.barh(3, num+0.1, color='#ffb3ff')
        ax.text(num +0.1, 3, "北京省", size=14, weight=600, ha='right', va='bottom')
    if num>=50:
        ax.barh(1, 50, color='#adb0ff')  # 绘制水平方向的条形图barh()
        ax.text(50,1, "广东省", size=14, weight=600, ha='right', va='bottom')#添加文字并设置样式
        if num<70:
            ax.barh(3, num+2, color='#ffb3ff')
            ax.text(num+2, 3, "北京省", size=14, weight=600, ha='right', va='bottom')
        if num >=70:
            ax.barh(3, num-1, color='#ffb3ff')
            ax.text(num-1, 3, "北京省", size=14, weight=600, ha='right', va='bottom')
    ax.barh(5, num, color='#90d595')
    ax.text(num,5, "云南省", size=14, weight=600, ha='right', va='bottom')
    pyplot.title('人口工作情况对比')#添加图标题
​
animator=animation.FuncAnimation(fig, graph, frames=range(1,100),interval=1)
animator.save(filename="数据.gif",writer='pillow')#保存gif
animator.save(filename="数据.mp4")#保存视频
pyplot.show()#移动到函数外才能正常显示

这样,我么就完成了数据动态视频的制作​。

 

​相关推荐:

 

bilibili,抖音很火的动态数据视频自动生成(第二节)

动态数据视频(第一节)

windows 如何安装ffmpeg

如何爬取王者荣耀全皮肤英雄壁纸

 

​欢迎关注我们:

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)-柱形数据视频[通俗易懂]

大家一起学编程

以学习为主,兴趣为辅,致力于开发,发现更多好玩有趣的编程技巧以及好玩有趣的编程思路。为喜欢编程和想要学习编程的人找到编程的乐趣和动力。

下期预告​:

    ​

    ​给你喜欢的人画一个大大的爱心吧​

喜欢就点个吧​

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111367.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 动态规划之01背包问题及其优化(python实现)「建议收藏」

    动态规划之01背包问题及其优化(python实现)「建议收藏」动态规划之01背包问题及其优化(python实现)**背包问题(**Knapsackproblem)是一种组合优化的NP完全问题。问题描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。解决思路:动态规划,对每一件物品遍历背包容量,当背包可容纳值大于等于当前物品,与之前已放…

    2022年7月26日
    5
  • 在MT4上使用双线MACD指标源码

    在MT4上使用双线MACD指标源码MACD指标是股票交易中经典的一款技术分析指标,该指标由两条曲线和柱线组成。基本用法:MACD金叉:DIFF由下向上突破DEA,为买入信号。MACD死叉:DIFF由上向下突破DEA,为卖出信号。MACD绿转红:MACD值由负变正,市场由空头转为多头。MACD红转绿:MACD值正转负,市场多头转空头。DIFF与DEA均为正值,即都在零轴线以上时,大势属于多头市场,DIFF向上突破DEA,可以做买入信号。DIFF与DEA均为负值,即都在零轴线以下时,大势属于空头市场,DIFF向下跌破DEA,可做卖出信号。DE

    2022年5月7日
    100
  • 使用reaver命令穷举PIN码破解WPA2-PSK加密的无线网络[通俗易懂]

    使用reaver命令穷举PIN码破解WPA2-PSK加密的无线网络[通俗易懂]【前言】现在的路由器大多都默认用WPA2-PSK方式对无线网络进行加密了,不能再像WEP加密方式那样好破解,使用字典又需要费心费力地整理字典,而且字典破解的效率还慢。所以我们需要更有效率的破解方法。好在现在大多数的路由器都提供WPS功能,通过这个功能,用户可以使用PIN码登录到路由器。但这个PIN码的长度只有8位,而且可能的取值只有11000种(注意,不是10…

    2022年6月4日
    30
  • BS架构与CS架构的区别(详细讲解)

    BS架构与CS架构的区别(详细讲解)1.CS=Client-Server=客戶端-服務器。例子:QQ,迅雷,快播,暴風影音,各種網絡遊戲等等。只要有和服務器通訊的都算。2.BS=Browser-Server=浏览器-服務器。例子:所有的网站都是bs。C/S系统结构   B/S系统结构 1、客户端要求C/S客户端的计算机电脑配置要求较高。B/S客户端的计算…

    2022年6月29日
    39
  • 高等数学解题神器app_ubuntu cp命令

    高等数学解题神器app_ubuntu cp命令XSS在chrome上,需要先关闭xss保护反射型low对输入未做过滤$data=no_check($data);输入&lt;script&gt;alert(document.cookie)&lt;/script&gt;middle输入校验functionxss_check_4($data){//addsla…

    2022年9月23日
    1
  • windows DLL注入之注册表注入

    windows DLL注入之注册表注入windows下的注入之注册表注入:1.概念介绍:注入与Hook:注入与hook经常被人们混淆,其实注入和hook是两种windows下的编程技术(当然,其他平台也有相关的技术),由于在安全编程中,两项技术经常被同时结合起来使用,所以常常导入混淆。今天我们就谈谈windows下的注入技术。1.1Hook:hook的中文名叫钩子,hook是程序设计中最为灵活多变的技巧之一,hook对指…

    2022年5月16日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号