clc; clear;
CPI = [0.700000000000000, -0.800000000000000, 1.20000000000000, 3.90000000000000, 1.80000000000000, 1.50000000000000, 4.80000000000000, 5.90000000000000, -0.700000000000000, 3.30000000000000, 5.40000000000000, 2.60000000000000, 2.60000000000000, 2, 1.40000000000000, 2, 1.60000000000000, 2.10000000000000, 2.90000000000000, 2.50000000000000, 0.900000000000000, 2, 1.50000000000000, 2];
%% 参数配置
p = 10000; % 初始本金
years = 2001:2024; % 年份序列
a = CPI/100; % CPI转换
color_main = [0.2 0.4 0.8]; % 主色调 (深蓝)
color_hl = [0.8 0.2 0.2]; % 高亮色 (红色)
%% 复利计算
ben_jin = p * cumprod(1 + a); % 向量化计算提高效率
fprintf('用CPI计算的最终等价购买力为:%.2f\n',ben_jin);
%% 高级可视化
figure('Color','white','Position',[100 100 900 500],'Name','CPI调整价值演化');
% 主绘图区
ax = gca;
hold on;
% 绘制渐变背景
x_lim = [min(years)-0.5 max(years)+0.5];
gradient_bg = linspace(0.95, 0.5, 256)';
background = [gradient_bg, gradient_bg, ones(256,1)];
imagesc(x_lim, [min(ben_jin) max(ben_jin)], background)
axis([x_lim min(ben_jin)*0.98 max(ben_jin)*1.02])
% 绘制主趋势线
main_plot = plot(years, ben_jin,...
'Color', color_main,...
'LineWidth', 2.5,...
'Marker', 'o',...
'MarkerSize', 8,...
'MarkerFaceColor', 'w',...
'MarkerEdgeColor', color_main);
% 高亮关键点
[~, max_idx] = max(ben_jin);
highlight = scatter(years(max_idx), ben_jin(max_idx), 150,...
'MarkerFaceColor', color_hl,...
'MarkerEdgeColor', 'k',...
'LineWidth', 1.5);
% 添加数据标签
text(years(end), ben_jin(end),...
sprintf('%.0f元\n(2024)',ben_jin(end)),...
'FontSize',10,...
'Color',color_main,...
'VerticalAlignment','bottom',...
'HorizontalAlignment','right');
% 添加趋势线
fit_coeff = polyfit(years, ben_jin, 2);
trend_line = plot(years, polyval(fit_coeff,years),...
'--','Color',[0.5 0.5 0.5],...
'LineWidth',1.2);
%% 图表美化
% 坐标轴设置
ax.FontName = '微软雅黑'; % 中文字体
ax.FontSize = 11;
ax.XLabel.String = '年份';
ax.YLabel.String = '等效购买力 (元)';
ax.XTick = 2001:3:2024;
ax.XTickLabelRotation = 45;
ax.YGrid = 'on';
ax.GridLineStyle = '--';
ax.GridAlpha = 0.3;
ax.Layer = 'top'; % 网格在数据下方
% 标题设置
title({'2000-2024年货币购买力演化趋势';},...
'FontSize',14,...
'FontWeight','bold',...
'Color',[0.2 0.2 0.2])
% 图例设置
legend([main_plot, highlight, trend_line],...
{'实际购买力', '峰值年份 (' num2str(years(max_idx)) ')', '二次趋势线'},...
'Location', 'northwest',...
'FontSize', 10,...
'Box', 'off');
hold off;
%% 导出设置 (可选)
print('CPI_analysis.png','-dpng','-r300') % 导出高清图片
运行结果:保留两位小数:
用CPI计算的最终等价购买力为:16365.96
模型: