PHPExcel の y 軸ラベルの配置に問題があります。
グラフを作成すると、y 軸のラベルがプロット エリアの左側に表示されず、常にプロット エリアに重なっていて、0 ではなくカテゴリ 4 から始まります。
この問題は、カテゴリの x 軸の値と、Excel がデータに対して y 軸を配置する場所を決定できないことが原因であると想定しています。私のカテゴリ (x 軸) の値は文字列形式です。
yyyy, i.e. 1980 1981 1982 1983 etc.
そして、これが私の PHPExcel チャート作成コードで、y 軸の配置を除いてすべて機能しています。
$labels = array(
new PHPExcel_Chart_DataSeriesValues('String', "'Report Summary'!C1", null, 1),
new PHPExcel_Chart_DataSeriesValues('String', "'Report Summary'!D1", null, 1)
);
$chrtCols = "'Report Summary'!B2:B$rowNum";
$chrtVals = "'Report Summary'!C2:C$rowNum";
$chrtVals2 = "'Report Summary'!D2:D$rowNum";
$periods = new PHPExcel_Chart_DataSeriesValues('Number', $chrtCols, null, $rowNum-1);
$values = new PHPExcel_Chart_DataSeriesValues('Number', $chrtVals, null, $rowNum-1);
$values2 = new PHPExcel_Chart_DataSeriesValues('Number', $chrtVals2, null, $rowNum-1);
$series = new PHPExcel_Chart_DataSeries(
PHPExcel_Chart_DataSeries::TYPE_AREACHART, // plotType
PHPExcel_Chart_DataSeries::GROUPING_STANDARD, // plotGrouping
array(0,1), // plotOrder
$labels, // plotLabel
array($periods,$periods), // plotCategory
array($values,$values2) // plotValues
);
$series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL);
$layout = new PHPExcel_Chart_Layout();
$plotarea = new PHPExcel_Chart_PlotArea($layout, array($series));
$chart = new PHPExcel_Chart('sample', null, null, $plotarea);
$chart->setTopLeftPosition('A1', 24, 24);
$chart->setBottomRightPosition('B18', -24);
$actSheet->addChart($chart);
誤った交点を自動的に選択するのではなく、y 軸がカテゴリ 0 で x 軸と交差するように指示する設定はありますか? または、正しい交差点を自動的に選択するようにソース データを変更する方法はありますか?
編集:「可能な」回避策は、単に y 軸の線の色を「線なし」に設定し、y 軸のラベル表示を「nextTo」ではなく「低」に設定することですが、PHPExcel にはこの時点で軸の線の色の設定を変更する機能。それともそうですか?