Python实现Matplotlib,Seaborn动态数据图的示例代码

Xylona ·
更新时间:2024-09-20
· 877 次阅读

目录

Matplotlib

Seaborn

Matplotlib

效果图如下

主要使用matplotlib.animation.FuncAnimation,上核心代码,

# 定义静态绘图函数 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, '单位 (每1000)', 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') plt.box(False) # 调用matplotlib.animation.FuncAnimation让静态图动起来 animator = animation.FuncAnimation(fig, draw_barchart, frames=range(1968, 2019)) # Jupyter Notebook里展示动图animation HTML(animator.to_jshtml())

在绘图数据部分改自己的数据既可为所欲为的使用了~

Seaborn

效果图如下

代码

import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation import seaborn as sns import numpy as np import palettable def get_data(i=0): x, y = np.random.normal(loc=i, scale=3, size=(2, 260)) return x, y x, y = get_data() g = sns.JointGrid(x=x, y=y, size=4) g.fig.set_size_inches(10, 8) lim = (-10, 10) def prep_axes(g, xlim, ylim): g.ax_joint.clear() g.ax_joint.set_xlim(xlim) g.ax_joint.set_ylim(ylim) g.ax_marg_x.clear() g.ax_marg_x.set_xlim(xlim) g.ax_marg_y.clear() g.ax_marg_y.set_ylim(ylim) plt.setp(g.ax_marg_x.get_xticklabels(), visible=False) plt.setp(g.ax_marg_y.get_yticklabels(), visible=False) plt.setp(g.ax_marg_x.yaxis.get_majorticklines(), visible=False) plt.setp(g.ax_marg_x.yaxis.get_minorticklines(), visible=False) plt.setp(g.ax_marg_y.xaxis.get_majorticklines(), visible=False) plt.setp(g.ax_marg_y.xaxis.get_minorticklines(), visible=False) plt.setp(g.ax_marg_x.get_yticklabels(), visible=False) plt.setp(g.ax_marg_y.get_xticklabels(), visible=False) def animate(i): g.x, g.y = get_data(i) prep_axes(g, lim, lim) g.plot_joint(sns.kdeplot, cmap='Paired') g.plot_marginals(sns.kdeplot, color='blue', shade=True) frames = np.sin(np.linspace(0, 2 * np.pi, 17)) * 5 ani = matplotlib.animation.FuncAnimation(g.fig, animate, frames=frames, repeat=True) HTML(ani.to_jshtml())

和Matplotlib代码类似,不过多解释。

到此这篇关于Python实现Matplotlib,Seaborn动态数据图的示例代码的文章就介绍到这了,更多相关Python动态数据图内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!



Seaborn 示例 数据 matplotlib Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号