首页 > 解决方案 > 在 Python 的 matplotlib 图表中打印数据的数量、平均值和标准差

问题描述

我喜欢在 matplotlib 图表中使用“缩放”按钮。每当我更改 ZOOM 时,我想打印图表中数据的数据数量、平均值和标准偏差。 它可以在控制台或图表中。如果我可以在任何地方看到图表中的一些数据统计信息,那就太好了。你能给我建议吗?

在此处输入图像描述

标签: pythonmatplotlib

解决方案


我想我的问题并不清楚。无论如何,我通过在 matplotlib discourse 中提出问题自己找到了解决方案!

我意识到 matplotlib 的概念比我想象的要广泛得多。以下解决方案不是该问题的正确答案,因为它仅在按下按钮时打印统计信息,而不是在更改 xlim 时打印。但我更喜欢这种方式,因为我只能在需要时打印统计数据。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.widgets import Button


df = pd.DataFrame()

fig, ax = plt.subplots()
plt.subplots_adjust(bottom=0.2)
df['time'] = np.arange(0.0, 1.0, 0.001)
df['data'] = np.sin(2*np.pi*df['time'])
df.plot.scatter(x='time', y='data', s=1, ax=ax)


def print_stats(event):
    start, end = ax.get_xlim()
    cond1 = df['time'] > start 
    cond2 = df['time'] < end
    df_tmp = df[cond1 & cond2]
    print(df_tmp.describe())

b_loc_size = plt.axes([0.81, 0.05, 0.1, 0.075])
b = Button(b_loc_size, 'Stats', hovercolor='green')
b.on_clicked(print_stats)
plt.show()

推荐阅读