处理图书数据并绘图展示
code
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_excel('./tushu.xlsx')
data.dropna(inplace=True)
data.drop_duplicates(keep='first',inplace=True)
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
target = data[data['商品名称'] == 'Python数据分析与应用']
target = target[1:-2]
sale = {}
sale_num = []
for i in range(len(target)):
if str(target['日期'].iloc[i])[5:7] not in sale:
sale[str(target['日期'].iloc[i])[5:7]+'月'] = sum(target.iloc[i][3:-1])
else:
sale[str(target['日期'].iloc[i])[5:7]+'月'] += sum(target.iloc[i][3:-1])
for i in list(sale.keys())[3:] + list(sale.keys())[:3]:
for k,v in sale.items():
if k == i:
sale_num.append(v)
rate = [0]
for i in range(1,len(sale_num)):
rate.append((sale_num[i]-sale_num[i-1])/sale_num[i-1])
fig,ax = plt.subplots(figsize=(13,7))
ax.bar(list(sale.keys())[3:] + list(sale.keys())[:3],sale_num)
plt.title('《Python数据分析与应用》2019年环比增长情况')
plt.ylabel('全国销量(册)')
axR = ax.twinx()
h = axR.plot(list(sale.keys())[3:] + list(sale.keys())[:3],rate,'ro-')
for a, b in zip(list(sale.keys())[3:] + list(sale.keys())[:3], rate):
plt.text(a, b+0.02, '%.2f%%' % (b*100), ha='center', va='bottom', fontsize=15, color='red')
axR.set(ylabel='增长率')