class collectionStatistic(ModelAdmin): model = CollectionManagement menu_label = '藏品统计' menu_icon = 'form' list_display = ['bar_chart'] def bar_chart(self, obj): # 获取图表数据 data = [10, 20, 30, 40, 50] # 创建图表 fig, ax = plt.subplots() ax.bar(range(len(data)), data) # 设置图表标签和标题 ax.set_xlabel('X Label') ax.set_ylabel('Y Label') ax.set_title('Bar Chart') # 将图表转换为HTML字符串 from io import BytesIO buffer = BytesIO() fig.savefig(buffer, format='png') buffer.seek(0) image_png = buffer.getvalue() buffer.close() # 将图表作为HTML字符串返回 from django.utils.html import format_html return format_html('<img src="data:image/png;base64,{}" />', base64.b64encode(image_png).decode()) bar_chart.short_description = '藏品统计' 为什么展示出来的条形统计图的数量是ColllectionManagement表中数据的数量?
时间: 2024-02-14 22:24:26 浏览: 71
展示出来的条形统计图的数量是CollectionManagement表中数据的数量,是因为在该函数中,获取了数据并进行了处理,然后通过使用Matplotlib库生成了一个图表,并将其转换成HTML字符串的形式返回。在这个过程中,没有对数据进行筛选或者处理,因此生成的图表中包含了所有的数据。如果需要展示特定数据的图表,可以在获取数据时进行筛选,或者在函数中添加参数来控制需要展示的数据。
阅读全文