- 下面为练习中所用到的数据集
https://download.csdn.net/download/qq_40926887/13747588
1. 使用matplotlib呈现出店铺总数排名前10的国家
# coding=utf-8
import pandas as pd
from matplotlib import pyplot as plt
import matplotlib
# windws和linux设置字体的放
font = {'family': 'MicroSoft YaHei',
'weight': 'bold',
'size': 'larger'}
my_font = matplotlib.rc("font", family='MicroSoft YaHei', weight="bold")
file_path = "./starbucks_store_worldwide.csv"
df = pd.read_csv(file_path)
# 使用matplotlib呈现出店铺总数排名前10的国家
# 准备数据
data1 = df.groupby(by="Country").count()["Brand"].sort_values(ascending=False)[:10]
_x = data1.index
_y = data1.values
# 画图
plt.figure(figsize=(20, 8), dpi=80)
plt.bar(range(len(_x)), _y)
plt.xticks(range(len(_x)), _x)
# 添加描述信息
plt.xlabel("国家", fontproperties=my_font)
plt.ylabel("店铺数量", fontproperties=my_font)
plt.show()
显示
2. 使用matplotlib呈现出每个中国每个城市的店铺数量
# coding=utf-8
import pandas as pd
from matplotlib import pyplot as plt
import matplotlib
# windws和linux设置字体
font = {'family': 'MicroSoft YaHei',
'weight': 'bold',
'size': 'larger'}
my_font = matplotlib.rc("font", family='MicroSoft YaHei', weight="bold")
file_path = "./starbucks_store_worldwide.csv"
df = pd.read_csv(file_path)
df = df[df["Country"] == "CN"]
# 使用matplotlib呈现出每个中国每个城市的店铺数量
# 准备数据
data1 = df.groupby(by="City").count()["Brand"].sort_values(ascending=False)[:25]
_x = data1.index
_y = data1.values
# 画图
plt.figure(figsize=(20, 12), dpi=80)
# plt.bar(range(len(_x)),_y,width=0.3,color="orange")
plt.barh(range(len(_x)), _y, height=0.3, color="orange")
plt.yticks(range(len(_x)), _x, fontproperties=my_font)
# 添加描述信息
plt.xlabel("城市", fontproperties=my_font)
plt.ylabel("店铺数量", fontproperties=my_font)
plt.show()
显示
3. 现在我们有全球排名靠前的10000本书的数据,那么请统计一下下面几个问题:
- 不同年份书的数量
- 不同年份书的平均评分情况
# coding=utf-8
import pandas as pd
from matplotlib import pyplot as plt
import matplotlib
# windws和linux设置字体
font = {'family': 'MicroSoft YaHei',
'weight': 'bold',
'size': 'larger'}
my_font = matplotlib.rc("font", family='MicroSoft YaHei', weight="bold")
file_path = "./books.csv"
df = pd.read_csv(file_path)
# print(df.head(2))
# print(df.info())
# 不同年份书的数量
# data1 = df[pd.notnull(df["original_publication_year"])]
# grouped = data1.groupby(by="original_publication_year").count()["title"]
#
# _x = grouped.index
# _y = grouped.values
# # 画图
# plt.figure(figsize=(20, 8), dpi=80)
#
# plt.bar(range(len(_x)), _y)
#
# plt.xticks(range(len(_x)), _x)
# plt.xticks(list(range(len(_x)))[::10], _x[::10].astype(int), rotation=45)
#
# # 添加描述信息
# plt.xlabel("年份", fontproperties=my_font)
# plt.ylabel("数量", fontproperties=my_font)
#
# plt.show()
# 不同年份书的平均评分情况
# 去除original_publication_year列中nan的行
data1 = df[pd.notnull(df["original_publication_year"])]
grouped = data1["average_rating"].groupby(by=data1["original_publication_year"]).mean()
# print(grouped)
_x = grouped.index
_y = grouped.values
# 画图
plt.figure(figsize=(20, 8), dpi=80)
plt.plot(range(len(_x)), _y)
print(len(_x))
plt.xticks(list(range(len(_x)))[::10], _x[::10].astype(int), rotation=45)
plt.show()