Skip to content

Instantly share code, notes, and snippets.

@nissuk
Created December 19, 2011 15:51
Show Gist options
  • Save nissuk/1497742 to your computer and use it in GitHub Desktop.
Save nissuk/1497742 to your computer and use it in GitHub Desktop.
pChart 2.1.3: 散布図(XYグラフ)を描画する例
<?php
/* pChartのexamplesディレクトリと同じ所に配置して下さい */
require_once "../class/pData.class.php";
require_once "../class/pDraw.class.php";
require_once "../class/pImage.class.php";
require_once "../class/pScatter.class.php";
$data = new pData();
// Y軸用に2種類の適当なデータを設定します。
$data->addPoints(array(1, 4, 5, 4.5, 2, 3, 4.23, 5.1, 3, 3), "Y1");
$data->addPoints(array(2, 3, 5.1, 6, 8.1, 6, 7.2, 5, 9, 8), "Y2");
// データの色を設定します。
$data->setPalette("Y1", array("R" => 130, "G" => 200, "B" => 0));
$data->setPalette("Y2", array("R" => 0, "G" => 130, "B" => 200));
// X軸用に2種類の適当なデータを設定します。
$data->addPoints(array(0, 1.5, 2.2, 3.5, 4.3, 5.7, 6.1, 7, 8, 8.5), "X1");
$data->addPoints(array(0, 1, 3, 3.5, 4.3, 5.7, 6.1, 7, 8, 8.5), "X2");
// 0番目の軸をY軸として設定します。
$data->setSerieOnAxis("Y1", 0);
$data->setAxisName(0, "Y Axis");
$data->setAxisXY(0, AXIS_Y);
$data->setAxisPosition(0, AXIS_POSITION_TOP);
// 1番目の軸をX1軸として設定します。
$data->setSerieOnAxis("X1", 1);
$data->setAxisName(1, "X1 Axis");
$data->setAxisXY(1, AXIS_X);
$data->setAxisPosition(1, AXIS_POSITION_RIGHT);
// 2番目の軸をX2軸として設定します。
$data->setSerieOnAxis("X2", 2);
$data->setAxisName(2, "X2 Axis");
$data->setAxisXY(2, AXIS_X);
$data->setAxisPosition(2, AXIS_POSITION_LEFT);
// それぞれのデータの系列と系列名を設定します。
$data->setScatterSerie("X1", "Y1", 0);
$data->setScatterSerieDescription(0, "X1 - Y1");
$data->setScatterSerie("X2", "Y2", 1);
$data->setScatterSerieDescription(1, "X2 - Y2");
$image = new pImage(400, 200, $data);
$image->setFontProperties(array("FontName" => "../fonts/pf_arma_five.ttf", "FontSize" => 6));
$image->setGraphArea(50, 50, 350, 150);
$scatter = new pScatter($image, $data);
$scatter->drawScatterScale(array(
// それぞれの軸の最小値と最大値を手動で決めます。
"Mode" => SCALE_MODE_MANUAL,
"ManualScale" => array(
0 => array("Min" => 0, "Max" => 10),
1 => array("Min" => -10, "Max" => 20),
2 => array("Min" => 0, "Max" => 10),
),
// X軸ラベルが回転しないようにします。
"XLabelsRotation" => 0,
// グリッド線の色を変えます。
"GridR" => 180, "GridG" => 180, "GridB" => 180,
));
// 折れ線とプロットを描画します。
$scatter->drawScatterLineChart();
$scatter->drawScatterPlotChart();
// 凡例を描画します。
$scatter->drawScatterLegend(250, 180, array("Mode" => LEGEND_HORIZONTAL, "Style" => LEGEND_NOBORDER));
// グラフを出力します。
$image->autoOutput();
?>
@nissuk
Copy link
Author

nissuk commented Dec 23, 2011

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment