Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPExcel散点图:如何以不规则的间隔绘制数据_Php_Excel_Phpexcel - Fatal编程技术网

PHPExcel散点图:如何以不规则的间隔绘制数据

PHPExcel散点图:如何以不规则的间隔绘制数据,php,excel,phpexcel,Php,Excel,Phpexcel,PHPExcel提供了一个非常简单和有用的方法,用于创建一个Excel文件,其中包含一个基于小数据数组的简单散点图。然而,问题在于,该示例使用规则间隔的“字符串”值(Q1-Q4)作为其x轴 我想做的是创建一个散点图,其中包含不规则间隔的x轴数值,因此我修改了如下代码: $objWorksheet->fromArray( array( array('', 2010, 2011, 2012), array('0', 12, 15,

PHPExcel提供了一个非常简单和有用的方法,用于创建一个Excel文件,其中包含一个基于小数据数组的简单散点图。然而,问题在于,该示例使用规则间隔的“字符串”值(Q1-Q4)作为其x轴

我想做的是创建一个散点图,其中包含不规则间隔的x轴数值,因此我修改了如下代码:

$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轴对象

一个简单的问题,但令人沮丧

干杯