我需要创建一个生成的基于 png 的图表文件,其中带有带有数值的绘图标签,如下例所示。我在 Coldfusion 10 上,所以这是使用更新的 ZingChart 引擎。您看到的示例是由ZingChart Builder 制作的。
顺便说一句,我可以将基本图表绘制到 png 文件并检索它,然后查看它!我可以把我的 X 和 Y 东西弄好。我可以让我的系列以图例的形式呈现,我可以做基本的定位工作,我可以做不同的图表类型。我似乎无法对 json 覆盖的东西做任何事情,尤其是绘图栏标签。
我提供的代码来自我从互联网上搜索的一个示例以进行测试......但它应该很好地失败(就像我一整天一样)。
<cfscript>
legend = {
"width":150,
"height":25,
"position":"100% 0%",
"margin-top":10,
"margin-right":10,
"margin-left":10,
"margin-bottom":10,
"layout":"x2",
"alpha":0.5,
"background-color":"##99cc66",
"background-color-2":"##99cc66",
"border-color":"##000000",
"border-width":1,
"shadow":true,
"shadow-alpha":1,
"shadow-color":"##000000",
"shadow-distance":2,
"shadow-blur-x":1,
"shadow-blur-y":1,
"draggable":false,
"minimize":false
};
type ="bar";
plot = {
"value-box":{
"type":"all",
"text":"%v",
"text-align":"center",
"alpha":0.5,
"background-color":"##99cc66",
"background-color-2":"##99cc66",
"border-color":"##000000",
"border-width":1
}
};
</cfscript>
<cfchart
legend="#legend#"
plot="#plot#"
type="#type#"
showlegend="true"
height="300"
width="1300"
title="Super fun time!"
format="png"
name="moreComplexThanChineseArithmetic">
<cfchartseries seriescolor="red" seriesLabel="SeriesA" >
<cfloop from="1" to="10" index="i">
<cfchartdata item="" value="#randRange( 5, 100 )#">
</cfloop>
</cfchartseries>
<cfchartseries seriescolor="green" seriesLabel="SeriesB" >
<cfloop from="1" to="10" index="i">
<cfchartdata item="" value="#randRange( 5, 100 )#">
</cfloop>
</cfchartseries>
<cfchartseries seriescolor="blue" seriesLabel="SeriesC" >
<cfloop from="1" to="10" index="i">
<cfchartdata item="" value="#randRange( 5, 100 )#">
</cfloop>
</cfchartseries>
</cfchart>
<cfset savedFile = getTempFile("/dynamic/coldfusion/temp/", "moreComplexThanChineseArithmetic") & ".png" />
<cfset fileWrite(savedFile, moreComplexThanChineseArithmetic) />
<img src="<cfoutput>#savedFile#</cfoutput>" />
我处于集群环境中,这些图表不提供 HTML,因此使用 png 解决方法。另外,我必须像图像一样拥有它,因为图像可以缩放,我可以导出为 PDF,它看起来正确,服务器渲染并拍摄到客户端,所以我几乎没有客户端延迟。
现在。#plot# 中有变量替换,等等......正如你在上面看到的(我没有看到我尝试过的“任何”json 东西工作(一整天)(有很多不同的方法/组合来制作一些东西)发生)。它要么失败并出错(因为我犯了一个错误),要么什么都不做(这太棒了)。
上面那个 json 的东西可能有问题,但我再次,我用新的 json 尝试覆盖了一个又一个的变化,内联 json 也是,简化了等等。
我认为应该发生的是 plot value:box text: v% 应该(通过童话般的魔法)将 chartdata value 参数中的任何值作为条形上方或下方的一个不错的数字返回(或者我希望如此),但是它什么也没做,所以我无法测试我的期望。
如果需要更多详细信息,请告诉我...
PS 和仅供参考:我不能处理其他图表包。