详细示例代码已上传,参见文末链接
内容包括柱状图表、环形图表、数据输出列对齐问题、解决中文乱码、图例的参数配置及应用等等,希望对看到的朋友有帮助。
1、Python分析预测退休后养老金金额
代码运行需要安装第三方模块numpy、matplotlib
代码示例:
import matplotlib.pyplot as plt
import numpy as np
# 为柱状图添加标注
def label(bars):
for bar in bars:
height = bar.get_height()
plt.text(bar.get_x()+bar.get_width()/2.- 0.2, 1.03*height, '%s' % int(height))
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文
plt.rcParams['axes.unicode_minus'] = False # 显示负号
# 生成画布
plt.figure()
# 横坐标缴费年份
name_list = ['15年','20年','25年','30年','35年','40年','45年','50年']
#养老金的钱分两部分:基础养老金、个人账户养老金
#基础养老金(当地):上年度在岗职工月平均工资和本人指数化月平均缴费工资的平均值为基数,缴费每满1年发给1%
#个人账户养老金=个人账户储存额/计发月数。65退休为101个月
# 预测领取养老金(保守算法,缴费工资4500、增长率3%)
myMoney_list=[]
#缴费年限
years=[15,20,25,30,35,40,45,50]
#月平均工资
pay=4500
local_pay=6000
#经济增长率,工资增长率
GDP_rate=0.07
#未来个人养老金账户余额利息(银行利率)
Bank_rate=0.03
for i in years:
#个人养老金
person=(pay*(1+GDP_rate+Bank_rate))*i*0.08*12/101
#基础养老金(当地)
basis=((local_pay+pay)/2)*i*0.01
myMoney_list.append(person+basis)
print(myMoney_list)
y=myMoney_list
x=range(len(name_list))
print(x)
label(plt.bar(x,y,color='CornflowerBlue',tick_label=name_list))
list1=[]
#增长率计算(工资)
for i in range(len(y)-1):
list1.append((y[i+1]-y[i])/y[i])
print(list1)
#设置图表标题
plt.title('养老金分析')
plt.show()
运行结果:

2、可视化分析日常记账数据总结个人消费方向
代码运行需要安装第三方模块pandas、matplotlib
代码示例:
import matplotlib.pyplot as plt
import pandas as pd
#解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
#获取数据
df=pd.read_excel('accounts.xlsx')
#设置索引,按月份显示数据
df=df.set_index('日期',drop=True)
df=df['2019-12'].to_period('M') # 获取2019年12月数据
#按支出类别分组统计
df_month=df.groupby(['支出类别','日期'])[['金额']].sum().reset_index()
#按金额排序
df_month_sort=df_month[['支出类别','金额']].sort_values(by='金额',ascending=False)
#添加行索引
df_month_sort.index=[1,2,3,4,5,6]
print('2019年12月总支出:',df_month['金额'].sum(),'元')
print('我最爱把钱花在')
print(df_month_sort.rename(columns={'支出类别':'','金额':''})) #设置列名空,输出
'''
环形图表
'''
plt.rcParams['font.sans-serif']=['SimHei'] #解决中文乱码
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
labels = df_month_sort['支出类别'].values.tolist()
data_percent = df_month_sort['金额'].values.tolist()
colors = ['c', 'r', 'y', 'g', 'gray','b']
wedges1, texts1, autotexts1 = plt.pie(data_percent,
autopct = '%3.1f%%',
radius = 1,
pctdistance = 0.85,
colors = colors,
startangle = 180,
textprops = {'color': 'w'},
wedgeprops = {'width': 0.4, 'edgecolor': 'w'}
)
# 图例
plt.legend(wedges1,
labels,
fontsize = 12,
loc = 'center right',
borderaxespad=0., #borderaxespad将图例放外面
frameon=False, #去掉图例边框
bbox_to_anchor = (1.3, 0.6))
# 设置文本样式
plt.setp(autotexts1, size=12, weight='bold')
plt.setp(texts1, size=10)
# 标题
plt.title('我最爱把钱花在', fontsize=20)
plt.show()
运行结果:

3、环比分析日常消费数据掌握月支出增减情况
代码运行需要安装第三方模块pandas
代码示例:
import pandas as pd
#解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
#获取数据
df=pd.read_excel('accounts.xlsx')
#设置索引,按月份显示数据
df=df.set_index('日期',drop=True)
df=df['2019'].to_period('M') # 获取2019年每个月的数据
#按月统计支出
df_month=df.groupby(['日期'])[['金额']].sum().reset_index()
#环比差值
df_month['差值']=df_month.金额-df_month.金额.shift()
print(df_month)
运行结果:

4、日常消费数据占比分析总结年消费方向
代码运行需要安装第三方模块pandas
代码示例:
import pandas as pd
#解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
#获取数据
df=pd.read_excel('accounts.xlsx')
#设置索引,按月份显示数据
df=df.set_index('日期',drop=True)
df=df['2019-12'].to_period('M') # 获取2019年12月数据
#按支出类别分组统计
df_month=df.groupby(['支出类别','日期'])[['金额']].sum().reset_index()
#按金额排序
df_month_sort=df_month[['支出类别','金额']].sort_values(by='金额',ascending=False)
df_month_sort['占比']=(df_month_sort['金额']/df['金额'].sum()).apply(lambda x: format(x, '.2%'))
#添加行索引
df_month_sort.index=[1,2,3,4,5,6]
print('2019年12月总支出:',df_month['金额'].sum(),'元')
print(df_month_sort)
运行结果:

5、Python分析月平均消费金额
代码运行需要安装第三方模块pandas
代码示例:
import pandas as pd
#解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
#获取数据
df=pd.read_excel('accounts.xlsx')
#设置索引,按月份显示数据
df=df.set_index('日期',drop=True)
df=df['2019'].to_period('M') # 获取2019年每个月的数据
#月平均消费统计
df_month=df.groupby(['日期'])[['金额']].mean().applymap(lambda x: '%.2f'%x)
print(df_month)
运行结果:

最后
接上文:python学习之数据分析和图表的应用(第一部分)
上述代码示例链接:python学习之数据分析和图表的应用(第二部分)
文章提供了多个Python代码示例,涉及使用matplotlib和pandas库进行数据分析和可视化。示例包括预测退休后养老金金额的分析,通过柱状图展示不同缴费年限的影响;可视化日常记账数据,总结个人消费方向,使用环形图展示消费类别占比;以及分析月支出的环比变化和月平均消费金额。这些例子旨在帮助读者理解如何运用Python进行财务数据分析。
441

被折叠的 条评论
为什么被折叠?



