PHPExcel 图表轴选项设置 Maximium
PHPExcel Chart Axis Options set Maximium
我读过这个 post PHPExcel Chart Axis Options set Minimum 我的问题是这样的,我想将最大值(固定)设置到轴中,独立于图表中的值。
我已经阅读了很多post,但我无法得到我的问题的答案。
通过进入轴格式选项并为该轴的最大值设置固定值 max_value_scale(即 20),问题可能是 Excel 中的 "Fixed"。我可以在 PHPExcel 中更改此格式选项吗?
当我使用 pChart 渲染图表时(在我的系统提供的另一个选项中),我这样做了
$AxisBoundaries = array(0=>array("Min"=>0,"Max"=>$max_value_scale+1));
$scaleSettings = array("GridR"=>200,"GridG"=>200,"GridB"=>200,"LabelSkip"=>1,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE,"Mode"=>SCALE_MODE_MANUAL,"ManualScale"=>$AxisBoundaries,"MinDivHeight"=>50);
我渲染这张图片:
但我需要这样的东西:
我的图表创建正常,我已经验证了很多posts和论坛,但我找不到解决这个问题的方法。
$chart = new PHPExcel_Chart(
'chart1', // name
$title, // title
$legend, // legend
$plotarea, // plotArea
true, // plotVisibleOnly
0, // displayBlanksAs
$xAxisLabel, // xAxisLabel
$yAxisLabel // yAxisLabel
);
就像您提到的 Whosebug 问题一样,PHPExcel(自 1.8.1 起)无法以编程方式更改 y-axis 图表比例。 y-axis 图表比例是根据图表数据自动生成的,您无法控制它。
pChart 和 PHPExcel 是独立的库。不幸的是,pChart 中可用的调整比例的配置在 PHPExcel 中不可用。因此,使用 PHPExcel,您无法 auto-generate 配置 y-axis 的图表,正如您所要求的那样。
如果您设置了包含具有自定义 maximum/minimum y-axis 比例的 chart-image,您可以渲染您的 pChart 图像,然后 insert those images into a Worksheet via PHPExcel。明显的缺点是最终电子表格文档的用户将无法自行配置 chart-image(因为它们是图像,而不是图表)。
PHPExcel 中存在一个错误,已由我的此提交修复:https://github.com/PHPOffice/PHPExcel/commit/1a237573f9127a02388f4e306732122b39d1ea49
使用示例(100为最大值):
$axis = new PHPExcel_Chart_Axis();
$axis->setAxisOptionsProperties('nextTo', null, null, null, null, null, null, 100);
$chart = new PHPExcel_Chart('chart' . $locTL, $title, $legend, $pa, true, 0, NULL, NULL, $axis);
安装修复了此错误的 PHPExcel 版本或在您的版本之上应用补丁。
我读过这个 post PHPExcel Chart Axis Options set Minimum 我的问题是这样的,我想将最大值(固定)设置到轴中,独立于图表中的值。
我已经阅读了很多post,但我无法得到我的问题的答案。
通过进入轴格式选项并为该轴的最大值设置固定值 max_value_scale(即 20),问题可能是 Excel 中的 "Fixed"。我可以在 PHPExcel 中更改此格式选项吗?
当我使用 pChart 渲染图表时(在我的系统提供的另一个选项中),我这样做了
$AxisBoundaries = array(0=>array("Min"=>0,"Max"=>$max_value_scale+1));
$scaleSettings = array("GridR"=>200,"GridG"=>200,"GridB"=>200,"LabelSkip"=>1,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE,"Mode"=>SCALE_MODE_MANUAL,"ManualScale"=>$AxisBoundaries,"MinDivHeight"=>50);
我渲染这张图片:
但我需要这样的东西:
我的图表创建正常,我已经验证了很多posts和论坛,但我找不到解决这个问题的方法。
$chart = new PHPExcel_Chart(
'chart1', // name
$title, // title
$legend, // legend
$plotarea, // plotArea
true, // plotVisibleOnly
0, // displayBlanksAs
$xAxisLabel, // xAxisLabel
$yAxisLabel // yAxisLabel
);
就像您提到的 Whosebug 问题一样,PHPExcel(自 1.8.1 起)无法以编程方式更改 y-axis 图表比例。 y-axis 图表比例是根据图表数据自动生成的,您无法控制它。
pChart 和 PHPExcel 是独立的库。不幸的是,pChart 中可用的调整比例的配置在 PHPExcel 中不可用。因此,使用 PHPExcel,您无法 auto-generate 配置 y-axis 的图表,正如您所要求的那样。
如果您设置了包含具有自定义 maximum/minimum y-axis 比例的 chart-image,您可以渲染您的 pChart 图像,然后 insert those images into a Worksheet via PHPExcel。明显的缺点是最终电子表格文档的用户将无法自行配置 chart-image(因为它们是图像,而不是图表)。
PHPExcel 中存在一个错误,已由我的此提交修复:https://github.com/PHPOffice/PHPExcel/commit/1a237573f9127a02388f4e306732122b39d1ea49
使用示例(100为最大值):
$axis = new PHPExcel_Chart_Axis();
$axis->setAxisOptionsProperties('nextTo', null, null, null, null, null, null, 100);
$chart = new PHPExcel_Chart('chart' . $locTL, $title, $legend, $pa, true, 0, NULL, NULL, $axis);
安装修复了此错误的 PHPExcel 版本或在您的版本之上应用补丁。