我已阅读此帖PHPExcel Chart Axis Options set Minimum,我的问题是这样的,我想将最大值(固定)设置到轴中,与绘制的值无关。
我看过很多帖子,但我无法得到问题的答案。
通过进入Axis格式选项并为该轴的最大值设置max_value_scale(即20)的固定值,可以在Excel中“修复”该问题。我可以在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);
我渲染此图片:
但我需要这样的事情:
我的图表是正常创建的,我一直在验证很多帖子和论坛,但我找不到解决这个问题的方法。
$chart = new PHPExcel_Chart(
'chart1', // name
$title, // title
$legend, // legend
$plotarea, // plotArea
true, // plotVisibleOnly
0, // displayBlanksAs
$xAxisLabel, // xAxisLabel
$yAxisLabel // yAxisLabel
);
答案 0 :(得分:2)
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版本或在您的版本之上应用补丁。
答案 1 :(得分:1)
与您提及的StackOverflow问题类似,PHPExcel(从1.8.1开始)无法以编程方式更改y轴图表比例。 y轴图表比例是从图表的数据自动生成的,您无法控制它。
pChart和PHPExcel是独立的库。遗憾的是,在PHPExcel中无法使用pChart中可用的调整比例的配置。因此,使用PHPExcel,您无法自动生成按照您的要求配置y轴的图表。
如果您设置了包含自定义最大/最小y轴刻度的图表图像,则可以渲染pChart图像,然后insert those images into a Worksheet via PHPExcel。明显的缺点是,最终电子表格文档的用户将无法自行配置图表图像(因为它们是图像,而不是图表)。