Educoder Basemap和Seaborn 第一关:Seaborn

第一关:Seaborn

任务描述

本关任务:编写一个绘制每个月销售总额的折线图。

相关知识

为了完成本关任务,你需要掌握:1. matplotlib的缺点,2.如何使用 seaborn进行可视化,并设置整体布局风格。

  • 适用场景: 折线图适合二维的大数据集,尤其是那些趋势比单个数据点更重要的场合。它还适合多个二维数据集的比较。

用Seaborn做可视化

即使 matplotlib已经如此强大了,但是不得不承认它不支持的功能还有很多。总结如下:

  • 2.0之前的版本的默认配置样式绝对不是用户的最佳选择;
  • matplotlibAPI比较底层。虽然可以实现复杂的统计数据可视化,但是通常都需要写大量的样板代码;
  • matplotlib不支持 PandasDataFrame数据的可视化,必须先提取每个 Series

对于这些问题的终结者就是 seabornSeabornMatplotlib 的基础上开发了一套 API,为默认的图形样式和颜色设置提供了理智的选择,为常用的统计图形定义了许多简单的高级函数,并与 Pandas DataFrame 的功能有机结合。 Seaborn是在 matplotlib的基础上进行了更高级的 API封装,从而使得作图更加容易,在大多数情况下使用 seaborn能做出很具有吸引力的图。

而使用 matplotlib就能制作具有更多特色的图。应该把 Seaborn视为 matplotlib的补充,而不是替代物。同时它能高度兼容 numpyPandas数据结构以及 scipystatsmodels等统计模式。

Seaborn与Matplotlib

下面用 Matplotlib 的经典图形样式和配色方案画一个简易的随机游走图。

undefined

  1. import matplotlib.pyplot as plt
  2. plt.style.use('classic')
  3. import numpy as np
  4. import pandas as pd
  5. rng = np.random.RandomState(0)
  6. x = np.linspace(0, 10, 500)
  7. y = np.cumsum(rng.randn(500, 6), 0)
  8. plt.plot(x, y)
  9. plt.legend('ABCDEF', ncol=2, loc='upper left')
  10. plt.show()

Educoder Basemap和Seaborn 第一关:Seaborn

在看看使用 seaborn来实现。我们会发现, Seaborn不仅有许多高级的画图功能,而且可以改写 matplotlib的默认参数,从而用简单的 matplotlib脚本获得更好的效果。可以用 Seabornset()方法设置样式。

undefined

  1. import seaborn as sns
  2. sns.set()
  3. plt.plot(x, y)
  4. plt.legend('ABCDEF', ncol=2, loc='upper left')
  5. plt.savefig("T2.png")
  6. plt.show()

Educoder Basemap和Seaborn 第一关:Seaborn

上面应用了 seaborn的默认样式。 seaborn5seaborn的主题,适用于不同的应用和人群偏好:

  • darkgrid黑色网格(默认);
  • whitegrid白色网格;
  • dark黑色背景;
  • white白色背景;
  • ticks应该是四周都有刻度线的白背景。

编程要求

本关的编程任务是补全右侧上部代码编辑区内的相应代码,根据输入文件路径读取文件,统计各个月销售总和,然后绘制折线图,需要应用 seaborn设置默认样式,具体可视化要求如下:

  • 折线图的 figsize(10, 10)
  • 文件名为 Task1/img/T1.png
  • 具体要求请参见后续测试样例。

文件的部分数据如下:

Educoder Basemap和Seaborn 第一关:Seaborn

提示:在绘制折线图时,需要对数据进行预处理,通过 支付时间提取月份信息,再根据月份信息进行聚类,汇总每个月的 实际金额,得到月销售总和。

请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

测试说明

平台会对你编写的代码进行测试,对比你输出的数值与实际正确的数值,只有所有数据全部计算正确才能进入下一关。

测试输入:

无测试输入

预期输出: 生成图片与预期图片一致

开始你的任务吧,祝你成功!

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
def student(input_data):
    # ********* Begin *********#
    sns.set()
    plt.figure(figsize=(10,10))
    a=pd.read_csv(input_data)
    a["month"]=a["支付时间"].map(lambda x:int(x.split("/")[1]))
    d=a["实际金额"].groupby(a["month"]).sum()
    d=d.sort_index(ascending=False)
    plt.plot(d)
    plt.savefig("Task1/img/T1.png")
    plt.show()
    # ********* End *********#

Original: https://blog.csdn.net/m0_56494324/article/details/121275883
Author: 南风不竞呀
Title: Educoder Basemap和Seaborn 第一关:Seaborn

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/768323/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球