PHPExcel散点图:如何以不规则的间隔绘制数据
PHPExcel提供了一个非常简单和有用的方法,用于创建一个Excel文件,其中包含一个基于小数据数组的简单散点图。然而,问题在于,该示例使用规则间隔的“字符串”值(Q1-Q4)作为其x轴 我想做的是创建一个散点图,其中包含不规则间隔的x轴数值,因此我修改了如下代码:PHPExcel散点图:如何以不规则的间隔绘制数据,php,excel,phpexcel,Php,Excel,Phpexcel,PHPExcel提供了一个非常简单和有用的方法,用于创建一个Excel文件,其中包含一个基于小数据数组的简单散点图。然而,问题在于,该示例使用规则间隔的“字符串”值(Q1-Q4)作为其x轴 我想做的是创建一个散点图,其中包含不规则间隔的x轴数值,因此我修改了如下代码: $objWorksheet->fromArray( array( array('', 2010, 2011, 2012), array('0', 12, 15,
$objWorksheet->fromArray(
array(
array('', 2010, 2011, 2012),
array('0', 12, 15, 21),
array('10', 56, 73, 86),
array('30', 52, 61, 69),
array('70', 30, 32, 0),
)
);
$dataseriesLabels = array(
new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010
new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011
new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012
);
$xAxisTickValues = array(
new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$A$2:$A$5', NULL, 4), // 0 to 70
);
$dataSeriesValues = array(
new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
);
运行此代码时,得到的excel文件如下所示:
请注意第一个数据系列(2010)如何正确绘制,但其他两个数据系列则没有。我还注意到,如果选择2010年数据系列,它确实定义了y值和x值:
但是,当您单击任何其他数据集时,可以看到仅定义了y值:
我觉得这对我来说是一个相对简单的疏忽,但遗憾的是,我一直无法找到问题所在。我担心这类事情可能需要对PHPExcel.php文件进行黑客攻击,但我想先让社区运行它,然后再处理源文件
提前非常感谢您的建议…我想好了
事实证明这确实很简单,但PHPExcel确实需要更新他们的示例文件
我改变了这一点:
$xAxisTickValues = array(
new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$A$2:$A$5', NULL, 4), // 0 to 70
);
为此:
$xAxisTickValues = array(
new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$A$2:$A$5', NULL, 4),
new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$A$2:$A$5', NULL, 4),
new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$A$2:$A$5', NULL, 4),
new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$A$2:$A$5', NULL, 4)
);
换句话说,包含x轴系列对象的数组的长度必须与包含y轴系列对象的数组的长度相同。令人困惑的是,x轴阵列中填充了多个相同的x轴对象
一个简单的问题,但令人沮丧
干杯