ttc文件为字体文件,路径在 C:\Windows\Fonts 下。
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.font_manager as font_manager
# 这是中文字体编码
font_path = 'D:\\pythonProject1\\venv\\datahome\\simsun.ttc'
font_prop = font_manager.FontProperties(fname=font_path)
plt.rcParams['font.family'] = font_prop.get_name()
plt.rcParams['font.size'] = 12
# 读取数据
df = pd.read_csv("D:\\pythonProject1\\venv\\datahome\\pandas_exercise\\exercise_data\\chipotle.tsv", sep='\t')
df = df.rename(columns={"order_id": "订单编号", "quantity": "订单数量", "item_name": "产品名称", "choice_description": "产品描述", "item_price": "产品售价"}) # 修改列标签
df = df.dropna() # 读取数据,丢弃缺失值(NaN)
# print(df['产品名称'])
data = df['产品名称'].values.tolist() # 将表中‘产品名称’这一列转换为list格式
count_dict = {}
for i in data: # 统计各商品售卖的次数,记录为字典格式
count_dict[i] = data.count(i)
# print(count_dict)
# print(type(count_dict.items()))
# 将字典转换为DataFrame格式,list(count_dict.items()) 将字典的items设置成列表,这是表单的值。index为索引,从1开始递增。columns为列标签
my_df = pd.DataFrame(list(count_dict.items()), index=range(1, len(count_dict) + 1), columns=["订单名称", "数量"])
# my_df = my_df.set_index()
print(my_df)
plt.figure(dpi=300, figsize=(24, 16)) # 创建画布,dpi设置图标的清晰度,figsize为设置图标的比例
plt.xticks(fontsize=10) # 设置x轴的字体大小
# plt.xlim(0, 1000, 20)
plt.title("各商品订单数统计") # 设置标题
plt.xlabel("订单数量", fontsize=30) # x轴标签
plt.ylabel("订单名称", fontsize=30) # y轴标签
plt.barh(my_df["订单名称"], my_df["数量"]) # barh为绘制横向柱状图
plt.savefig("./image/chipltle.png") # 保存为图片
plt.show() # 查看