PHP 利用 Jpgraph 生成统计图(柱状图、折线图等)

       最近公司办公系统由钉钉迁移至飞书,需要把原有内部系统的统计信息迁移至飞书。之前信息内容只是简单的文字内容提醒,看起来比较单调。这次就想着插入一些统计图表,使消息看起来更为的丰富,也能增加一些用户粘性,看起来更为有趣。最终效果如下图所示

    

       一开始本想来用echarts,但实现起来较为繁琐,于是就转为使用Jpgraph,其效果还相当不错的,实现起来也较为简单,

    //生成图片,上传至飞书,生成img_key
    $path = \Yii::$app->getRuntimePath();
    require_once (Yii::getAlias("@backend").'/components/jpgraph/src/jpgraph.php');
    require_once (Yii::getAlias("@backend").'/components/jpgraph/src/jpgraph_bar.php');

    // Create the graph. These two calls are always required
    $graph = new \Graph(400,280,'auto');
    $graph->SetScale("textlin");

    $theme_class=new \UniversalTheme;
    $graph->SetTheme($theme_class);

    $graph->SetBox(false);
    $graph->xaxis->SetFont(FF_CHINESE);
    $graph->ygrid->SetFill(false);
    $graph->xaxis->SetTickLabels(array_values($company));
    $graph->yaxis->HideLine(false);
    $graph->yaxis->HideTicks(false,false);
    $graph->graph_theme = null;  //设置成null,否则$plot->value->Show() 不生效
    // Create the bar plots
    $b1plot = new \BarPlot($worker_bar_data);
    $b2plot = new \BarPlot($project_bar_data);
    $b1plot->value->Show(); //设置显示数字 
    $b2plot->value->Show(); //设置显示数字 
    $b1plot->SetLegend("工单");
    $b2plot->SetLegend("项目");
    $graph->SetMargin(40,40,20,70);
    // Create the grouped bar plot
    $gbplot = new \GroupBarPlot(array($b1plot,$b2plot));

    // ...and add it to the graPH
    $graph->Add($gbplot);


    $b1plot->SetColor("white");
    $b1plot->SetFillColor("#cc1111");

    $b2plot->SetColor("white");
    $b2plot->SetFillColor("#11cccc");
    $graph->title->Set("RET");

    $graph->Stroke();
    $filename = $path.$img_name.'.png';
    $graph->img->Stream($filename);//将生成的图片保存到本地
    //上传飞书获取image_key
    $PSize = filesize($filename);
    $picturedata = fread(fopen($filename, "r"), $PSize);
    $feishu = new \Feishu\Message();
    $info = $feishu->UploadImg($picturedata);
    return $info['data']['image_key'];

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您介绍一下使用JPGraph绘制销售量柱状图的步骤。 1. 安装JPGraph库 首先,您需要在PHP环境下安装JPGraph库。您可以从官方网站http://jpgraph.net/下载最新版本的JPGraph库,并将其解压缩到您的PHP项目中。 2. 创建数据源 在绘制柱状图之前,您需要创建一个数据源。假设您的销售数据存储在MySQL数据库中,您可以使用以下代码从数据库中查询数据: ``` //连接数据库 $conn = mysqli_connect("localhost", "username", "password", "database"); //查询销售数据 $result = mysqli_query($conn, "SELECT month, sales FROM sales_data"); //将数据存储到数组中 $data = array(); while($row = mysqli_fetch_assoc($result)) { $data[$row['month']] = $row['sales']; } ``` 注意:在实际应用中,您需要根据自己的数据存储方式来修改上述代码。 3. 绘制柱状图 接下来,您可以使用JPGraph库来绘制销售量柱状图。以下是一个例子: ``` //包含JPGraph库 require_once ('jpgraph/jpgraph.php'); require_once ('jpgraph/jpgraph_bar.php'); //创建画布 $graph = new Graph(600, 400); $graph->SetScale('textlin'); //设置图表标题 $graph->title->Set('Sales Data'); //创建柱状图 $bar = new BarPlot(array_values($data)); //设置柱状图颜色 $bar->SetFillColor('#3366CC'); //将柱状图添加到画布中 $graph->Add($bar); //设置横轴标签 $graph->xaxis->SetTickLabels(array_keys($data)); //输出图表 $graph->Stroke(); ``` 上述代码中,我们首先创建了一个画布,然后设置了图表标题和横轴标签。接下来,我们创建了一个柱状图,并将其添加到画布中。最后,我们输出图表。 注意:在实际应用中,您需要根据自己的需求来修改上述代码。 希望这个简单的示例能够帮助您使用JPGraph绘制销售量柱状图。如果您有任何问题,请随时询问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值