数据科学导论——数据可视化进阶

本文通过三个实战案例介绍如何使用Python中的Matplotlib、Seaborn及WordCloud等库进行数据可视化。包括绘制热图分析属性间的相关性、利用词云进行文本可视化,并展示不同房型平均价格的柱状图。
该文章已生成可运行项目,

第1关:热图

请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,在上图示例中计算属性之间的相关性。

具体绘图请按照以下要求可视化:

  • 数据文件路径为 Task1/listings.csv;

  • 图形的 figsize 为 (10, 10);

  • 文件名为 Task1/img/T1.png。

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
def student():

    # ********* Begin *********#
    df=pd.read_csv("Task1/listings.csv")
    plt.figure(figsize=(10,10))
    sns.heatmap(df[['price','minimum_nights','availability_365','reviews_per_month','number_of_reviews']].corr(),annot=True)
    plt.xticks(rotation=90)
    plt.savefig("Task1/img/T1.png")
    plt.show()

    # ********* End *********#

第2关:文本可视化 

请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,在右侧编辑器补充代码,对上图代码进行修改添加 mask 参数,使得绘制图形形状为房子形状。

具体绘图请按照以下要求可视化:

  • 数据文件路径为 Task2/listings.csv;

  • 图形的 figsize 为 (10, 10);

  • 保存文件为 Task2/img/T1.png;

  • 为了使每次的图形一致,设置 random_state 为 2019。

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS
import seaborn as sns
from PIL import Image
import requests
import numpy as np
import pandas as pd
def student():

    # ********* Begin *********#
    # 补全所有None的部分
    df=pd.read_csv("Task2/listings.csv")
    mask = np.array(Image.open(requests.get('http://www.clker.com/cliparts/O/i/x/Y/q/P/yellow-house-hi.png', stream=True).raw))
    filtered_words = {"Amsterdam", "apartment", "room", "bedroom", "studio", "city"}
    wordcloud = WordCloud(
                        background_color = "white",
                        stopwords = set(STOPWORDS).union(filtered_words),
                        max_words = 100,
                        max_font_size = 40,
                        mask = mask,
                        random_state=2019
                        ).generate(str(df["name"]))
    plt.figure(figsize = (10,10))
    plt.imshow(wordcloud)
    plt.axis("off")
    plt.savefig("Task2/img/T1.png")
    plt.show()
    # ********* End *********#

第3关:作图调整和美化 

请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充。读取数据,然后统计不同 room_type 的平均价格并使用 seaborn 的 barplot 函数绘制柱状图。

具体绘图请按照以下要求:

  • 数据文件路径为 Task1/listings.csv;

  • 图形的 figsize 为 (10, 10);

  • 文件名为 Task3/img/T1.png;

  • 设置背景为 whitegrid;

  • 坐标轴旋转 90 度。

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
def student():

    # ********* Begin *********#
    plt.figure(figsize = (10,10))
    df=pd.read_csv("Task3/listings.csv")
    d=df["price"].groupby(df["room_type"]).mean()
    sns.set(style = 'whitegrid')
    sns.barplot(y=d.values,x=d.index)
    plt.xticks(rotation=90)
    plt.savefig("Task3/img/T1.png")
    plt.show()


    # ********* End *********#

本文章已经生成可运行项目
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小浪浪、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值