工作任务:将Excel文件中2013年至2019年间线上图书的销售额,以条形图的形式呈现,每个条形的高度代表相应年份的销售额,同时在每个条形上方标注具体的销售额数值
在deepseek中输入提示词:
你是一个Python编程专家,要完成一个Python脚本编写的任务,具体步骤如下:
读取xls格式的Excel文件"F:\AI自媒体内容\books.xlsx"的第二个工作表:Sheet2,
用matplotlib绘制一个柱状图:
获取C1单元格到C8单元格的内容作为x轴的数据。
获取G1单元格到G8单元格的内容作为y轴的数据。
绘制y轴上的虚线网格。
设置x轴标签为"年份"。
设置y轴标签为"线上销售额(元)"。
设置图表的标题为"2013-2019年线上图书销售额分析图"。
设置柱状图中每个柱子的宽度=0.5,对齐方式:居中对齐,颜色为蓝色,透明度=0.5,底部起始位置=0.8;
对于每个柱子,上方添加文本标签,显示销售额的值,并格式化为千位分隔符格式;文本的字体大小为9,颜色为红色,透明度为0.9。
添加图例,包含标签"销售额"。
设置matplotlib默认字体为'SimHei',文件路径为:C:\Windows\Fonts\simhei.ttf
保存图片到文件夹"F:\AI自媒体内容";
显示图片;
注意:每一步都输出信息到屏幕
源代码:
import pandas as pd
import matplotlib.pyplot as plt
设置matplotlib默认字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 雅黑字体
plt.rcParams['axes.unicode_minus'] = False # 正确显示负号
读取Excel文件的第二个工作表
file_path = "F:\\AI自媒体内容\\books.xlsx"
sheet_name = "Sheet2"
df = pd.read_excel(file_path, sheet_name=sheet_name)
获取x轴和y轴数据
x_data = df.iloc[0:8, 2].values # C列的数据,从第二行到第八行
y_data = df.iloc[0:8, 6].values # G列的数据,从第二行到第八行
创建柱状图
fig, ax = plt.subplots()
bars = ax.bar(x_data, y_data, width=0.3, align='center', color='b', alpha=0.5, bottom=0.8)
添加文本标签
for bar in bars:
height = bar.get_height()
ax.text(bar.get_x() + bar.get_width() / 2, height,
'{:,.0f}'.format(height),
ha='center', va='bottom', fontsize=9, color='r', alpha=0.9)
绘制y轴上的虚线网格
ax.yaxis.grid(True, linestyle='dashed')
设置x轴和y轴标签
ax.set_xlabel('年份')
ax.set_ylabel('线上销售额(元)')
设置图表标题
ax.set_title('2013-2019年线上图书销售额分析图')
添加图例
ax.legend([bars], ['销售额'])
显示图片
plt.show()
保存图片
save_path = "F:\\AI自媒体内容\\sales_analysis.png"
plt.savefig(save_path)
print(f"图片已保存到:{save_path}")