python制作动态条形图,python绘制条形图语句
动画是让可视化对用户更有吸引力和吸引力的好方法。它帮助我们以一种有意义的方式展示数据可视化。Matplotlib是一个非常流行的数据可视化库,通常使用内置函数对数据和动画进行图形表示。本文将使用Matplotlib绘制条形图来追赶动画,有需要的可以参考。
00-1010前言方法一:使用pause()函数方法二:使用FuncAnimation()函数线性图动画Python的条形图追赶动画Python的散点图动画:条形图追赶水平移动
目录
动画是让可视化对用户更有吸引力和吸引力的好方法。它帮助我们以一种有意义的方式展示数据可视化。Python帮助我们使用现有的强大Python库创建动画可视化。Matplotlib是一个非常流行的数据可视化库,通常使用内置函数对数据和动画进行图形表示。
使用Matplotlib创建动画有两种方法:
使用pause()函数使用FuncAnimation()函数
前言
pause()中matplotlib库的pyplot模块在功能上用于暂停参数提到的间隔秒。考虑下面的例子,我们将使用matplotlib创建一个简单的线性图形并在其中显示动画:
创建两个数组x和y,存储从1到100的值。
使用plot()函数绘制x和y坐标。
在适当的时间间隔添加pause()函数。
运行程序,你会看到动画。
计算机编程语言
从matplotlib导入pyplot作为plt
x=[]
y=[]
对于范围(100):内的I
十.附录(一)
y.append(i)
#提及X和Y限制以定义其范围
plt.xlim(0,100)
plt.ylim(0,100)
#绘制图形
plt.plot(x,y,color=green )
plt暂停(0.01)
plt.show()
输出:
同样,您可以使用pause()函数在各种绘图中创建动画。
方法一:使用 pause() 函数
这个FuncAnimation()函数本身并不创建动画,而是从我们传递的一系列图形中创建动画。
语法: func动画(figure,animation _ function,frames=none,init _ func=none,fares=none,save _ count=none,*,cache _ frame _ data=true,
* *克瓦查)
现在你可以使用FuncAnimation函数制作多种类型的动画:
方法二:使用 FuncAnimation() 函数
在这个例子中,我们将创建一个简单的线性图形,它将显示一条线的动画。同样,使用FuncAnimation,我们可以创建许多类型的动画视觉表示。我们只需要在一个函数中定义我们的动画,然后用适当的参数将它传递给FuncAnimation。
计算机编程语言
从matplotlib导入pyplot作为plt
从matplotlib.animation导入FuncAnimation
将numpy作为np导入
x=[]
y=[]
figure,ax=plt.subplots()
#设置X轴和Y轴的极限
ax.set_xlim(0,100)
ax.set_ylim(0,12)
#画一张图
line,=ax.plot(0,0)
def动画_函数(一):
x
.append(i * 15)
y.append(i)
line.set_xdata(x)
line.set_ydata(y)
return line,
animation = FuncAnimation(figure,
func = animation_function,
frames = np.arange(0, 10, 0.1),
interval = 10)
plt.show()
输出:
Python 中的条形图追赶动画
在此示例中,我们将创建一个简单的条形图动画,它将显示每个条形的动画。
Python
from matplotlib import pyplot as pltfrom matplotlib.animation import FuncAnimation, writers
import numpy as np
plt.rcParams[font.sans-serif] = [Microsoft YaHei]
fig = plt.figure(figsize = (7,5))
axes = fig.add_subplot(1,1,1)
axes.set_ylim(0, 300)
palette = [blue, red, green,
darkorange, maroon, black]
y1, y2, y3, y4, y5, y6 = [], [], [], [], [], []
def animation_function(i):
y1 = i
y2 = 6 * i
y3 = 3 * i
y4 = 2 * i
y5 = 5 * i
y6 = 3 * i
plt.xlabel("国家")
plt.ylabel("国家GDP")
plt.bar(["印度", "中国", "德国",
"美国", "加拿大", "英国"],
[y1, y2, y3, y4, y5, y6],
color = palette)
plt.title("条形图动画")
animation = FuncAnimation(fig, animation_function,
interval = 50)
plt.show()
输出:
Python 中的散点图动画:
在这个例子中,我们将使用随机函数在 python 中动画散点图。我们将遍历animation_func并在迭代时绘制 x 和 y 轴的随机值。
from matplotlib import pyplot as pltfrom matplotlib.animation import FuncAnimation
import random
import numpy as np
x = []
y = []
colors = []
fig = plt.figure(figsize=(7,5))
def animation_func(i):
x.append(random.randint(0,100))
y.append(random.randint(0,100))
colors.append(np.random.rand(1))
area = random.randint(0,30) * random.randint(0,30)
plt.xlim(0,100)
plt.ylim(0,100)
plt.scatter(x, y, c = colors, s = area, alpha = 0.5)
animation = FuncAnimation(fig, animation_func,
interval = 100)
plt.show()
输出:
条形图追赶的水平移动
在这里,我们将使用城市数据集中的最高人口绘制条形图竞赛。
不同的城市会有不同的条形图,条形图追赶将从 1990 年到 2018 年迭代。
我从人口最多的数据集中选择了最高城市的国家。
需要用到的数据集可以从这里下载:city_populations
Python
import pandas as pdimport matplotlib.pyplot as plt
import matplotlib.ticker as ticker
from matplotlib.animation import FuncAnimation
plt.rcParams[font.sans-serif] = [Microsoft YaHei]
df = pd.read_csv(city_populations.csv,
usecols=[name, group, year, value])
colors = dict(zip([India,Europe,Asia,
Latin America,Middle East,
North America,Africa],
[#adb0ff, #ffb3ff, #90d595,
#e48381, #aafbff, #f7bb5f,
#eafb50]))
group_lk = df.set_index(name)[group].to_dict()
def draw_barchart(year):
dff = df[df[year].eq(year)].sort_values(by=value,
ascending=True).tail(10)
ax.clear()
ax.barh(dff[name], dff[value],
color=[colors[group_lk[x]] for x in dff[name]])
dx = dff[value].max() / 200
for i, (value, name) in enumerate(zip(dff[value],
dff[name])):
ax.text(value-dx, i, name,
size=14, weight=600,
ha=right, va=bottom)
ax.text(value-dx, i-.25, group_lk[name],
size=10, color=#444444,
ha=right, va=baseline)
ax.text(value+dx, i, f{value:,.0f},
size=14, ha=left, va=center)
ax.text(1, 0.4, year, transform=ax.transAxes,
color=#777777, size=46, ha=right,
weight=800)
ax.text(0, 1.06, Population (thousands),
transform=ax.transAxes, size=12,
color=#777777)
ax.xaxis.set_major_formatter(ticker.StrMethodFormatter({x:,.0f}))
ax.xaxis.set_ticks_position(top)
ax.tick_params(axis=x, colors=#777777, labelsize=12)
ax.set_yticks([])
ax.margins(0, 0.01)
ax.grid(which=major, axis=x, linestyle=-)
ax.set_axisbelow(True)
ax.text(0, 1.12, 从 1500 年到 2018 年世界上人口最多的城市,
transform=ax.transAxes, size=24, weight=600, ha=left)
ax.text(1, 0, by haiyong.site 海拥,
transform=ax.transAxes, ha=right, color=#777777,
bbox=dict(facecolor=white, alpha=0.8, edgecolor=white))
plt.box(False)
plt.show()
fig, ax = plt.subplots(figsize=(15, 8))
animator = FuncAnimation(fig, draw_barchart,
frames = range(1990, 2019))
plt.show()
输出:
以上就是详解在Python中创建条形图追赶动画的详细内容,更多关于Python动画的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。