比较(七)利用python绘制表格
表格(Table)简介
表格是数据在行和列中的结构化排列,允许进行方便的排序、过滤和分析。表格的优点在于可以清晰、有组织的呈现信息,便于快速比较和解读信息。
快速绘制
-
基于pandas
可能需要更新jinja2:pip install --upgrade jinja2
import pandas as pd import matplotlib as mpl import numpy as np # 自定义数据 sample_size = 6 new_york = np.random.uniform(20,60,sample_size) paris = np.random.uniform(20,40,sample_size) london = np.random.uniform(5,30,sample_size) df = pd.DataFrame({ 'new_york': new_york, 'paris': paris, 'london': london}, index=pd.date_range(start="2020-01-01", periods=sample_size).strftime("%d-%m-%Y")) # 自定义风格函数 def custom_table(styler): styler.background_gradient(cmap="Blues", axis=None) # 色阶 styler.format(precision=2) # 文本格式 styler.applymap(lambda x: 'text-align: center; font-size: 14px;') return styler agg_metrics = df.agg(["mean", "max"]) # 增加统计数据 pd.concat([df, agg_metrics]).style.pipe(custom_table)
-
基于plottable
import matplotlib.pyplot as plt import pandas as pd from plottable import Table # 自定义数据 data = { 'Score': [8, 6, 10, 3, 9], 'Value': [50.42, 17.01, 42.90, 6.83, 92.06], 'Comment': ['Nice', 'Cool', 'Fun', 'Bad', 'Okay']} df = pd.DataFrame(data) # 初始布局 fig, ax = plt.subplots(figsize=(5, 5)) # 绘制表 tab = Table(df) plt.show()
-
基于matplotlib
import pandas as pd import matplotlib.pyplot as plt import numpy as np # 自定义数据 data = { 'Freeze': [ 66386, 174296, 75131, 577908, 32015], 'Wind': [ 58230, 381139, 78045, 99308, 160454], 'Flood': [ 89135, 80552, 152558, 497981, 603535], 'Quake': [ 78415, 81858, 150656, 193263, 69638], 'Hail': [139361, 331509, 343164, 781380, 52269], 'rows': ['%d year' % x for x