Python3绘制连续运动的柱状图(可用于显示仿真彩灯,显示音频)

本文介绍如何使用Python3绘制动态变化的柱状图,适用于模拟彩灯效果或音频显示等场景。通过matplotlib库实现动画效果,并利用random库生成随机数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       Python3绘制连续运动的柱状图(可用于显示仿真彩灯,显示音频),颜色一致,大小一致,欢迎引用。

代码如下:

import random
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt 

import matplotlib.animation as animation

X = [0.5]
XX=[1.5]
Y = [20]
YY=[23]

plt.bar(X, Y, 1, color="blue")
plt.show()
plt.ion()

color_bar = ['yellow','red','blue','green','orange','tomato']
y_color = []

ims = []

for i in range(136):
    Y.append(random.randint(1,36))
    y_color.append(color_bar[i%6])

ii = 0
for i in range(15,450,10):
    ii = ii + 1
    X.append(i/10)

fig_bar, axs = plt.subplots(1, 1)
for j in range(116-45):

    for kk in range(1,4):
        axs.set_xlabel("X-axis")
        axs.set_ylabel("Y-axis")
        axs.set_title("bar chart")
        axs.set_ylim(0,37)
 
        #for jj in range(45):
        bar_yy = Y[j:j+46]
        #print(bar_yy)
        for i in range(45):
            axs.bar(X[i], bar_yy[i]/kk, 1, color=y_color[i+j-1])
        plt.draw()


        im = plt.scatter(1,1).findobj()
        ims.append(im)

        plt.show()
        plt.pause(0.01)
        axs.cla()
        axs.clear()

    for kk in range(3,1,-1):
        axs.set_xlabel("X-axis")
        axs.set_ylabel("Y-axis")
        axs.set_title("bar chart")
        axs.set_ylim(0,37)
 
        #for jj in range(45):
        bar_yy = Y[j:j+46]
        #print(bar_yy)
        for i in range(45):
            axs.bar(X[i], bar_yy[i]/kk, 1, color=y_color[i+j-1])
        plt.draw()


        im = plt.scatter(1,1).findobj()
        ims.append(im)

        plt.show()
        plt.pause(0.01)
        axs.cla()
        axs.clear()        


ani = animation.ArtistAnimation(fig_bar, ims, interval=200, repeat_delay=1000)
ani.save("test1.gif", writer='pillow')

#for a,b in zip(X,Y):
#     plt.text(a, b+0.05, '%.0f' % b, ha='center', va= 'bottom',fontsize=11)
#for a,b in zip(XX,YY):
#     plt.text(a, b+0.05, '%.0f' % b, ha='center', va= 'bottom',fontsize=11)

效果如下:

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值