python 用animation绘制排序动态柱状图,参与比较的两个颜色凸显
时间: 2024-03-11 18:48:03 浏览: 56
很高兴回答您的问题!以下是绘制排序动态柱状图的Python代码,并在比较时突出显示两个颜色:
```python
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
# 生成随机数列
np.random.seed(0)
data = np.random.randint(0, 50, 15)
# 初始化柱状图
fig, ax = plt.subplots()
rects = ax.bar(range(len(data)), data, align='edge')
# 定义比较颜色的位置
compare_index = [0, 1]
# 更新函数
def update(frame):
# 随机生成新的数据
new_data = np.random.randint(0, 50, 15)
# 比较新数据和旧数据,并突出显示比较颜色
for i, rect in enumerate(rects):
if i in compare_index:
rect.set_color('r')
elif new_data[i] > data[i]:
rect.set_color('g')
else:
rect.set_color('b')
rect.set_height(new_data[i])
# 保存新数据
data[:] = new_data[:]
return rects,
# 动画实例
ani = animation.FuncAnimation(fig, update, frames=range(10), repeat=True)
plt.show()
```
代码中,我们首先生成一个随机数列,然后初始化柱状图。在每一帧的更新函数中,我们生成新的随机数列,并比较新旧数据,将比较颜色和变化颜色分别设置为红色和绿色,其余的柱子颜色为蓝色。最后,我们将新数据保存,并返回更新的柱状图。
希望这个代码可以帮助您解决问题!
阅读全文