*题目
*拉面排行榜
可圆是一位拉面爱好者,她从网上获取了一份拉面数据,存储在 “/Users/keyuan/ramenRatings.csv” 路径下:
"Area"代表国家/地区,"Bowl"代表碗装拉面品牌数量,"Cup"代表杯装拉面品牌数量,"Pack"代表袋装拉面品牌数量,"rating"代表该国家/地区整体拉面评分。
可圆想要通过双y轴叠加图,展示拉面品牌数量前五的国家/地区的拉面评分。
具体步骤如下:
- 读取文件后,计算每个国家/地区的拉面品牌数量总和
- 根据品牌数量总和,将原数据降序排序,并选出排名前5的行数据
- 以这5行数据的国家/地区(“Area”)作为x轴,绘制对比这5个国家/地区的碗装(“Bowl”)、杯装(“Cup”)和袋装(“Pack”)拉面品牌数量的簇形柱状图,并将x轴标题设置为"国家/地区",y轴标题设置为"品牌总量"
- 然后,在同一个x轴上,添加另一个y轴,根据前5行数据绘制一个折线图,以这5行数据的国家/地区(“Area”)作为x轴,整体拉面评分(“rating”)作为y轴。同时,将折线图的标记设置为"*",颜色设置为"crimson",y轴标题设置为"评分"。
import pandas as pd
import matplotlib.pyplot as plt
data=pd.read_csv('/Users/keyuan/ramenRatings.csv')
plt.rcParams['font.sans-serif']='Arial Unicode MS'
data["Sum"]=data["Bowl"]+data["Cup"]+data["Pack"]
data.sort_values(by='Sum',ascending=False,inplace=True)
data1=data.iloc[0:5]
data1.plot.bar('Area',['Bowl','Cup','Pack'])
plt.xlabel('国家/地区')
plt.ylabel('品牌总量')
plt.twinx()
plt.plot(data1['Area'],data1['rating'],marker='*',color='crimson')
plt.ylabel('评分')
plt.show()