数据可视化--例题

百词斩第35题

题目:

可圆是一位拉面爱好者,她从网上获取了一份拉面数据,存储在 "/Users/keyuan/ramenRatings.csv" 路径下:

"Area"代表国家/地区,"Bowl"代表碗装拉面品牌数量,"Cup"代表杯装拉面品牌数量,"Pack"代表袋装拉面品牌数量,"rating"代表该国家/地区整体拉面评分。

可圆想要通过双y轴叠加图,展示拉面品牌数量前五的国家/地区的拉面评分。

具体步骤如下:

1. 读取文件后,计算每个国家/地区的拉面品牌数量总和

2. 根据品牌数量总和,将原数据降序排序,并选出排名前5的行数据

3. 以这5行数据的国家/地区("Area")作为x轴,绘制对比这5个国家/地区的碗装("Bowl")、杯装("Cup")和袋装("Pack")拉面品牌数量的簇形柱状图,并将x轴标题设置为"国家/地区",y轴标题设置为"品牌总量"

4. 然后,在同一个x轴上,添加另一个y轴,根据前5行数据绘制一个折线图,以这5行数据的国家/地区("Area")作为x轴,整体拉面评分("rating")作为y轴。同时,将折线图的标记设置为"*",颜色设置为"crimson",y轴标题设置为"评分"。

#导入pandas、matplotlib模块
import pandas as pd
import matplotlib.pyplot as plt

#读取文件
df = pd.read_csv("/Users/keyuan/ramenRatings.csv")

#设置中文字体
plt.rcParams["font.sans-serif"]="Arial Unicode MS"

#计算每个国家/地区的拉面品牌数量总和
df["sum"] = df["Bowl"]+df["Cup"]+df["Pack"]

#根据品牌数量总和,将原数据降序排序,并选出排名前5的行数据
df.sort_values(by="sum",ascending=False,inplace=True)
sum_data = df.iloc[0:5]

'''以这5行数据的国家/地区("Area")作为x轴,绘制对比这5个国家/地区的碗装("Bowl")、杯装("Cup")和袋装("Pack")拉面品牌数量的簇形柱状图,并将x轴标题设置为"国家/地区",y轴标题设置为"品牌总量".'''
sum_data.plt.bar("Area",["Bowl","Cup","Pack"])
plt.xlabel("国家/地区")
plt.ylabel("品牌总量")


'''在同一个x轴上,添加另一个y轴,根据前5行数据绘制一个折线图,以这5行数据的国家/地区("Area")作为x轴,整体拉面评分("rating")作为y轴。同时,将折线图的标记设置为"*",颜色设置为"crimson",y轴标题设置为"评分"。'''
plt.twinx()
plt.plot(sum_data["Area"],sum_data["rating"],marker="*",color="crimson")
plt.ylabel("评分")

#展示图像
plt.show()

补充:

  1. 数据排序函数

.sort_values(by="需排序得数据列",ascending=False,inplace=True)

ascending=False:降序

inplace参数:是否用排序后的数据集替换原来的数据,默认为False

df.sort_values(by="sum",ascending=False,inplace=True)

2.访问列数据

①访问一列数据

#按列索引(columns)访问
data["columns"]

②访问多列数据

data[["columns_1","columns_2",...]]

3.访问行数据

①按照index的值访问行数据--.loc

#访问某一行
.loc[index的值]
#访问连续的某几行,包含结束index的值
.loc[起点index的值:结束index的值]
#访问不连续的某几行
.loc[[第一个index的值,第二个index的值,...]]
#访问元素
#访问单个元素
.loc[index的值,columns的值]
#访问多个元素
.loc[index的切片或列表,columns切片或列表]

②按照行位置访问行数据--.iloc

#访问某一行
.iloc[index的位置]
#访问连续的某几行,不包含结束index的值
.iloc[index起点位置:index结束位置]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值