stringbuffer在最前面添加_柱状图中添加多个达标线,你一个小时没完成,同事只用这三步搞定...

柱状图相信大家都有操作过,单一产品数据进行对比的时候,柱状图确实能够很清晰的看到图表数据的趋势。但是对于图表本身我们却无法看到数据达标情况,所以这里就需要对柱状图单独添加达标线来操作。

7aa54346c188437570f65ecc9292daf9.png

如上图所示,我们通过在柱状图中,添加不同层次维度的三种达标背景线之后,除了能够看到不同产品数据本身的销量对比情况, 也能看到每一款产品自身的一个销售完成达标情况。下面我们就来学习一下,如何在柱状图中快速添加这种多背景达标线。

第一步:我们先整理数据,然后做三个辅助列,确定不合格、达标、优秀三个层级的完成数值目标。然后按Ctrl键,首先将产品、销量、优秀三组数据选中,点击菜单栏插入,做柱状图表。如下图所示:

b262e57aaceb5ac30b6826c92fb0a207.gif

第二步:我们鼠标选中优秀列的柱状图,点击右键设置数据系列格式。重叠类型修改为100%,间距设置为0。然后依次复制数据中达标数据、不合格数据粘贴到图表中。如下图所示:

fb3b6f37024d1e0908b422b8346dab7c.gif

第三步:我们鼠标点击销量的柱状图,点击鼠标右键设置数据系列格式,将图表设置为次坐标轴。这样销量图就能体现到最前面。然后适当调整销量图的间距。最后将不合格、达标、优秀三个背景图设置为合适的颜色即可。如下图所示:

5f0824c723d8eb55d7476babba3a3fb9.gif

通过上面的三步操作,我们就做好了老板需要的图表,如何在柱状图中添加多种达标线。现在你学会如何操作了吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在rapidjson,可以通过以下步骤向一个document添加多个kv,并将document生成string: 1. 创建一个rapidjson::Document对象。 ```c++ rapidjson::Document doc; ``` 2. 向该对象添加多个key-value对,其key可以是一个字符串,也可以是一个整数。 ```c++ doc.SetObject(); // 将doc设为Object类型 rapidjson::Value key1("name", doc.GetAllocator()); // 定义一个key1,类型为字符串 rapidjson::Value value1("John", doc.GetAllocator()); // 定义一个value1,类型为字符串 doc.AddMember(key1, value1, doc.GetAllocator()); // 添加key1-value1对到doc rapidjson::Value key2("age", doc.GetAllocator()); // 定义一个key2,类型为字符串 rapidjson::Value value2(30, doc.GetAllocator()); // 定义一个value2,值为整数 doc.AddMember(key2, value2, doc.GetAllocator()); // 添加key2-value2对到doc ``` 3. 将该document对象转换成string。 ```c++ rapidjson::StringBuffer strbuf; // 定义一个StringBuffer对象 rapidjson::Writer<rapidjson::StringBuffer> writer(strbuf); // 定义一个writer doc.Accept(writer); // 将doc写入buffer std::string str = strbuf.GetString(); // 从buffer获取生成的string ``` 完整代码如下: ```c++ #include <rapidjson/document.h> #include <rapidjson/writer.h> #include <rapidjson/stringbuffer.h> #include <iostream> int main () { rapidjson::Document doc; doc.SetObject(); rapidjson::Value key1("name", doc.GetAllocator()); rapidjson::Value value1("John", doc.GetAllocator()); doc.AddMember(key1, value1, doc.GetAllocator()); rapidjson::Value key2("age", doc.GetAllocator()); rapidjson::Value value2(30, doc.GetAllocator()); doc.AddMember(key2, value2, doc.GetAllocator()); rapidjson::StringBuffer strbuf; rapidjson::Writer<rapidjson::StringBuffer> writer(strbuf); doc.Accept(writer); std::string str = strbuf.GetString(); std::cout << str << std::endl; return 0; } ``` 输出结果为: ```json {"name":"John","age":30} ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值