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)
效果如下: