You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JFreeChart+MySQL生成柱状图无显示问题求助

排查JFreeChart柱状图无法显示特定列的问题

嘿,从你的描述来看,代码和数据库连接的逻辑肯定是没问题的——毕竟换其他数值型列就能正常生成柱状图,问题百分百出在Prop_menages_Urbains_Proprietaires这个列的数据本身,我给你列几个最可能的原因,你可以挨个排查:

  • 数据类型“名不符实”:
    你说这是数值型列,但有可能实际存储的是带格式的字符串(比如带千分位逗号的"1,500",或者混入了非数字字符)。MySQL的VARCHAR列存这种数据时,JDBCCategoryDataset没法把它解析成可用于绘图的数值,自然就出不了图。你可以先跑个测试SQL:SELECT CAST(Prop_menages_Urbains_Proprietaires AS DECIMAL) FROM fes,如果报错,就说明数据格式有问题。

  • 数据全是0或空值:
    如果这个列的所有行要么是0要么是NULL,JFreeChart的柱状图会因为没有可展示的有效高度,看起来就像没显示一样。你可以执行SELECT COUNT(*), SUM(Prop_menages_Urbains_Proprietaires) FROM fes看看统计结果,如果总和为0或者大部分是NULL,那就是这个原因。

  • 数据范围异常导致图表缩放“吞”了柱子:
    要是这个列的数值要么极小(比如都是0.00001这种量级),要么极大(和其他列的数值差距特别大),JFreeChart的自动缩放功能可能会把柱子压缩到几乎看不见。你可以手动设置坐标轴范围试试,加这段代码:

    plot = chart.getCategoryPlot();
    NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setRange(0, 你这个列的最大值); // 替换成查询到的实际最大值
    

    如果设置后能看到柱子,那就是数据范围的锅。

  • 数据或列名含特殊字符:
    列名里的下划线一般没问题,但如果数据里藏了不可见字符(比如换行、制表符),也会导致JFreeChart解析失败。你可以用SELECT TRIM(Prop_menages_Urbains_Proprietaires) FROM fes检查数据有没有多余的奇怪字符。

建议你先从查询这个列的实际数据入手,确认数据的有效性,这是最快定位问题的办法。

内容的提问来源于stack exchange,提问作者Hmlaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:41:35