2016-02-15 91 views
0

PHPExcel提供了一個非常簡單且有用的example,用於創建包含基於少量數據的簡單散點圖的Excel文件。然而,問題在於這個例子對於它的x軸使用規則間隔的「字符串」值(Q1-Q4)。PHPExcel Scatterplot:如何以不規則間隔繪製數據

我所要做的是創建具有不規則隔開的數字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文件我得到看起來像這樣: enter image description here

請注意第一個數據系列(2010)如何正確繪製,但其他兩個沒有。我還注意到,如果選擇2010年的數據系列,但它確實有兩個y值和x值定義:

enter image description here

但是,當你點擊任何其他數據集,你可以看到,只有y值定義爲:

enter image description here

我覺得這是我的一個比較簡單的監督,但可悲的是,我一直無法找到問題所在。我很擔心這種類型的東西可能需要在PHPExcel.php文件中進行破解,但我想先在社區中運行這個東西,然後在源文件中進行調整。

非常感謝您的任何建議...

回答

0

想通了!

原來確實很簡單,但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軸對象。

一個簡單的問題,但令人沮喪的一個。

乾杯!

相關問題