数据转换成柱状图

本文介绍如何在JSP页面上使用Chart.js库绘制基于财务数据的柱状图,包括从后端获取数据并将其转化为图表所需格式的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Chart.js下载地址:https://github.com/chartjs/Chart.js/releases/tag/v2.7.3

JSP页面:

<canvas id="myChart" width="370" height="200"></canvas>


<script type="text/javascript" src='<c:url value="/js/Chart.js"></c:url>'></script>

<script  type="text/javascript">
var mlist = eval('${json}');
	console.log(mlist);
var mouthArry=[];//月份
var moneyNum=[];//金额


	
$.each(mlist,function(idx,obj){
	mouthArry.push(obj.archivesname);
	moneyNum.push(obj.consummoney);
  });

var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: mouthArry,
        datasets: [{
            label: '财务汇总',
            data: moneyNum,
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(255, 159, 64, 0.2)'
            ],
            borderColor: [
                'rgba(255,99,132,1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }]
    },
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero:true
                }
            }]
        }
    }
});
</script>

后台代码:

后台传一个json数组:
//获取当年每个月的消费总额
            List<Consum> mthlist = consumService.getMonthMoney();
            mav.addObject("mthlist", mthlist);
            JSONArray json = JSONArray.fromObject(mthlist);
            mav.addObject("json", json);

### 将数据流图转换为柱状图的方法 在处理数据可视化时,将数据流图转换柱状图可以提供一种不同的视角来理解数据分布情况。对于这种需求,通常可以通过编程方式实现这一目标。 #### 使用Python中的Matplotlib库进行转换 通过使用`matplotlib.pyplot.bar()`函数可以直接绘制柱状图。为了完从数据流图到柱状图的转变,首先需要提取出代表各个时间点上流量大小的数据序列作为输入给该函数。下面是一个简单的例子: ```python import matplotlib.pyplot as plt # 假设这是来自数据流图的时间戳和对应的数值列表 timestamps = ['08:00', '09:00', '10:00', '11:00'] values = [23, 45, 56, 78] plt.figure(figsize=(10, 6)) plt.bar(timestamps, values) for i in range(len(values)): plt.text(i, values[i], str(values[i]), ha='center') plt.xlabel('Time') plt.ylabel('Value') plt.title('Data Flow Chart Converted to Bar Chart') plt.show() ``` 这段代码展示了如何读取一组时间和对应值,并将其绘制标准形式的柱状图[^1]。 #### 利用Pandas简化操作流程 当面对更复杂的数据集时,利用pandas可以帮助更好地管理和准备用于可视化的数据结构。例如,在拥有CSV文件或其他表格型存储介质的情况下,先加载这些数据再做进一步处理会更加方便高效。 ```python import pandas as pd import matplotlib.pyplot as plt dataframe = pd.DataFrame({ 'timestamp': ['08:00', '09:00', '10:00', '11:00'], 'value': [23, 45, 56, 78] }) ax = dataframe.plot(kind="bar", x='timestamp', y='value', legend=False) plt.xlabel('Time') plt.ylabel('Value') plt.title('Data Flow Chart Converted to Bar Chart with Pandas') plt.show() ``` 这种方法不仅能够快速创建图表,而且还能轻松调整样式和其他属性以满足特定的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值