JpGraph 柱状图(bar)复杂 legend+tickLa

2018-12-21  本文已影响5人  sowork
成品图如下
        $d = [100, 20, 30, 40, 100, 50, 90, 90, 60, 200, 100, 20, 30, 40, 100, 50, 90, 90, 60, 200, 60, 80, 400]; // 数据和图显示的y轴数据不符
        $names = [ '面部表情识别能力', '情景表情识别能力',  '微表情识别', '情绪状态理解',  '自我控制能力' ,'合作性', '主张性' ,'责任感', '同伴能力', '社会技能', '情绪感知', '情绪运用', '情绪理解', '情绪管理', '胜任力', '逆境处理能力', '毅力', '自我效能感', '积极情感', '消极情感', '同感能力', '压力应激level1', '压力应激level2' ]; // x轴的tickLabel
        JpGraph::module('bar');  // 柱状图
        $c = ['#40699c', '#9e413e', '#7f9a48', '#695185', '#3c8da3', '#cc7b38', '#4177b7', '#b83a37', '#a1bf63', '#8064a2', '#4bacc6', '#f79544'];

        $graph = new \Graph(552, 353);
        $graph->SetScale('textlin');

        $iconv = [];
        foreach ($names as $k => $v) {
            $iconv[] = iconv('UTF-8', 'GB2312//IGNORE', $v);
        }
        $graph->xaxis->SetFont(FF_SIMSUN, FS_NORMAL, 9);
        $graph->xaxis->SetTickLabels($iconv);

        $graph->SetMargin(40,100,20,110);
        $graph->xaxis->SetLabelAlign('center','top');
        $graph->xaxis->SetLabelAngle(270);

        $graph->legend->Pos(0,0);
        $graph->legend->SetColumns(1);
        $graph->legend->SetFont(FF_SIMSUN, FS_NORMAL,6);
        foreach ($d as $key => $v) {
            $y = array_fill (0, 23, 0);
            $y[$key] = $v;
            $plot = new \BarPlot($y);
            $plot->SetAbsWidth(10);
            $plot->SetLegend(iconv("UTF-8", "GB2312//IGNORE", $names[$key] ?? ''));
            $graph->Add($plot);
            $plot->SetFillColor($c[$key % count($c)]);
        }

        $graph->Stroke();

参考文档地址: https://jpgraph.net/download/manuals/classref/index.html

上一篇下一篇

猜你喜欢

热点阅读