MetaGPT 数据可视化:让数据说话

数据可视化是将数据以图表、图形等视觉形式呈现的过程,它可以帮助我们发现数据中的模式、趋势和相关性,并提供洞察和理解。通过数据可视化,我们可以更好地理解数据的含义,传达和解释结果,并支持数据驱动的决策和沟通。

示例:可视化鸢尾花数据集

任务: 使用 DataInterpreter 对 sklearn 的鸢尾花数据集进行简单的分析和可视化。

代码:

python examples/di/data_visualization.py

examples/di/data_visualization.py 文件中的代码如下:

import asyncio
from metagpt.logs import logger
from metagpt.roles.di.data_interpreter import DataInterpreter
from metagpt.utils.recovery_util import save_history

async def main(requirement: str = ""):

    di = DataInterpreter()
    rsp = await di.run(requirement)
    logger.info(rsp)
    save_history(role=di)


if __name__ == "__main__":

    requirement = "对 sklearn 的鸢尾花数据集进行数据分析,并包含一个图表"
    asyncio.run(main(requirement))

执行上述代码后,生成的计划和代码将分别保存在 data/output/current_time/plan.jsondata/output/current_time/code.ipynb 文件中。

执行结果

DataInterpreter 提出了以下解决方案任务:

[
  {
    "task_id": "1",
    "dependent_task_ids": [],
    "instruction": "从 sklearn 加载鸢尾花数据集。"
  },
  {
    "task_id": "2",
    "dependent_task_ids": ["1"],
    "instruction": "对鸢尾花数据集进行探索性数据分析。"
  },
  {
    "task_id": "3",
    "dependent_task_ids": ["2"],
    "instruction": "创建图表来可视化鸢尾花数据集的特征。"
  }
]

DataInterpreter 能够将问题分解成逻辑任务,并按照加载数据、分析数据和绘制图表步骤进行执行。

DataInterpreter 生成的代码如下:

# ----------------------------------task1------------------------------------
from sklearn.datasets import load_iris
iris_data = load_iris()
iris_data.keys()
!pip install scikit-learn
from sklearn.datasets import load_iris
iris_data = load_iris()
iris_data.keys()
# ----------------------------------task2------------------------------------
import pandas as pd

# 从鸢尾花数据集创建 DataFrame
iris_df = pd.DataFrame(iris_data['data'], columns=iris_data['feature_names'])
iris_df['species'] = pd.Categorical.from_codes(iris_data['target'], iris_data['target_names'])

# 汇总统计
summary_statistics = iris_df.describe()

# 检查缺失值
missing_values = iris_df.isnull().sum()

(summary_statistics, missing_values)
# ----------------------------------task3------------------------------------
import matplotlib.pyplot as plt
import seaborn as sns

# 使用 seaborn 的 pairplot 可视化数据集特征
sns.set(style='whitegrid', context='notebook')
iris_pairplot = sns.pairplot(iris_df, hue='species', height=2.5)
plt.show()

在执行任务 1 时,由于环境中缺少 scikit-learn,第一次执行时发生了错误。但是,DataInterpreter 能够分析并解决这个问题,通过安装 scikit-learn 来解决。在任务 3 中,DataInterpreter 使用 seaborn 的 pairplot 函数创建了一个散点图矩阵,它可视化了数据集不同特征之间的关系,并使用颜色区分了不同物种的数据点。最后,使用 plt.show() 显示图表。

以下是 DataInterpreter 运行代码后绘制的图表。很明显,代码成功执行并生成了一个漂亮的可视化表格,它可以帮助我们更有效地分析数据集的特征。

总结

这个例子展示了 DataInterpreter 如何使用数据可视化来帮助我们分析和理解数据。它能够自动生成代码,并根据我们的需求选择合适的可视化方法。

更多学习资源

发表评论