G2实现同一曲线不同颜色显示

G2是蚂蚁金服研发的,一套面向常规统计图表,以数据驱动的高交互可视化图形语法,具有高度的易用性和扩展性。使用 G2,你可以无需关注图表各种繁琐的实现细节,一条语句即可使用 Canvas 或 SVG 构建出各种各样的可交互的统计图表。可以查看官网例子以及文档说明

此例子是为实现同一条曲线不同颜色显示。

1、利用渐进色实现

代码实现如下

<html>
    <head>
        <meta charset="utf-8">
        <title>Line坐标轴属性</title>
        <!-- 引入 g2.min.js -->
        <script src="./g2/dist/g2.min.js"></script>
        <style type="text/css">
            html,body{
            height:100%;
            }
            </style>
    </head>
    <body>
        <h4>Line坐标轴设置</h4>
        <!--建立图表容器-->
         <div id="c1"></div>
        <script>
                const data = [
                  { genre: 'Sports', sold: 275,phone:"iPhone" },
                  { genre: 'Strategy', sold: 115 ,phone:"iPhone"},
                  { genre: 'Action', sold: 120 ,phone:"xiaoni"},
                  { genre: 'Shooter', sold: 350 ,phone:"lx"},
                  { genre: 'Other', sold: 150 ,phone:"huawei"},
                ];
          
                // Step 1: 创建 Chart 对象
                const chart = new G2.Chart({
                  container: 'c1', // 指定图表容器 ID
                  width: 600, // 指定图表宽度
                  height: 300, // 指定图表高度

                });
          
                //y轴修改坐标轴线上的内容(利用scale的alias实现)
                chart.scale('sold', {
                  alias: '销售量',
                  nice: true,
                  formatter: val => `${val}个`,
                 
                });
                chart.axis('sold', {
                  title: {
                    style: {
                      fill: '#1890ff',
                      fontSize:20,
                    },
                  },
                 
                });
               
                
                //设置x标轴
                chart.axis("genre",{
                  label: //标签设置
                  {
                    formatter: (text) => {
                      return text+"$";
                    },
                   
                  },
                  title:{
                    style: {
                        fill: '#1890ff',
                      },
                  }

                });

                //绘制点,与下面曲线配合
                chart.point()
                .position('genre*sold')
                .color('#ff0000')
                .shape('circle');

                // Step 3:创建图形语法,绘制曲线
                //chart.legend('sold', false);
                chart.line()
                .position('genre*sold')
                .shape('smooth')  //圆滑曲线,默认是折线
                .color("l(90) 0:#ff0000 0.5:#7ec2f3 1:#ff0000")  //颜色设置,采用渐变的实现
                ;
                
                 // Step 2: 载入数据源
                 chart.data(data);

                // Step 4: 渲染图表
                chart.render();
              </script>
    </body>
</html>

2.利用annotation().regionFilter实现

代码如下(来自于官网例子

<!DOCTYPE html>
        <html>
          <head>
            <meta charset="UTF-8">
            <title>RegionFilter</title>
          </head>
          <body>
            <div id="container" />
            <script src="./g2/dist/g2.min.js"></script>
            <script>
            fetch('https:/g2.antv.vision/zh/examples/data/tempChange.json')
                .then(res => res.json())
                .then(data => {
                  const chart = new G2.Chart({
                    container: 'container',
                    autoFit: true,
                    height: 500
                  });
        chart.data(data);
        chart.area().position('year*change').color('white')
          .shape('smooth');
        chart.line().position('year*change').color('green')
          .shape('smooth');
        chart.annotation().regionFilter({
          top: true,
          start: ['min', 0],
          end: ['max', 'min'],
          color: '#FFFF00'
        });
        chart.annotation().regionFilter({
          top: true,
          start: ['min', 'max'],
          end: ['max', 0],
          color: '#FF4D4F'
        });
        
        chart.render();
      });
            </script>
          </body>
        </html>

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要修改g2o_viewer的颜色,你需要打开g2o_viewer的源代码,找到对应的颜色设置部分进行更改。以下是一个例子: 在源代码中搜索 "glColor3f",这是设置颜色的函数。 找到需要更改的颜色的代码行,例如: ```cpp glColor3f(1.0f, 1.0f, 1.0f); // 设置颜色为白色 ``` 将颜色值更改为所需的颜色值,例如: ```cpp glColor3f(0.0f, 0.0f, 1.0f); // 设置颜色为蓝色 ``` 保存修改后的代码并重新编译g2o_viewer。打开程序后,你应该看到新的颜色已经生效了。 请注意,这只是一个简单的例子,实际上你可能需要修改多个颜色设置才能完全改变g2o_viewer的外观。 ### 回答2: g2o_viewer是一个用于可视化和调试g2o图优化结果的工具。g2o图是基于顶点和边的表示方法,用于求解非线性最小二乘问题。为了修改g2o_viewer中的颜色,我们可以按照下面的步骤进行操作。 首先,打开g2o_viewer的源代码文件夹,并找到用于设置图元素颜色的相关代码块。这些代码通常可以在g2o_viewer.cpp或类似的文件中找到。 其次,查找需要修改颜色的图元素的名称或标识。g2o图通常包含不同类型的顶点和边,我们可以根据需要修改其中的任意一种类型或多种类型的颜色。 然后,确定要修改的颜色。可以通过修改RGB值或使用预定义的颜色名称来实现。预定义颜色名称通常以字符串形式存储,比如“红色”可以表示为“red”或“#FF0000”。 接下来,在相应的代码块中添加修改颜色的语句。具体的语法和方法可能因工具版本和实现而有所不同。一种常见的方法是通过调用g2o_viewer提供的设置颜色的函数。这些函数通常具有类似于“setColor()”的名称,并接受参数(顶点或边的标识符,颜色值)。根据具体的函数和参数命名规则,把需要修改颜色的图元素的标识和相应的颜色值传递给函数。 最后,重新编译和运行g2o_viewer,查看修改后的颜色效果。根据修改颜色的具体范围和代码位置,可能需要重新编译整个工具或仅编译特定的文件。 通过以上步骤,我们可以在g2o_viewer中修改不同图元素的颜色。根据具体的需求和实现,可以分别修改某个特定顶点、边或整个g2o图的颜色。这样做可以帮助我们更好地理解和分析优化结果。 ### 回答3: g2o_viewer是一个用于可视化图优化结果的工具,它基于OpenGL库开发而成,可以方便地查看和分析图优化算法的结果。 在g2o_viewer中,要修改颜色,可以通过对代码进行修改或者通过设置参数来实现。下面介绍两种方法: 第一种方法是通过修改代码来修改颜色。在g2o_viewer的源代码中,可以找到与颜色相关的变量或者函数进行修改。例如,在绘制节点的函数中,可以修改绘制节点的颜色,可以通过修改绘制边的函数来修改绘制边的颜色。这种方法需要对g2o_viewer的源代码比较熟悉,需要具备一定的编程能力。 第二种方法是通过设置参数来修改颜色。在运行g2o_viewer的时候,可以通过命令行参数或者配置文件来设置一些参数,从而达到修改颜色的目的。例如,可以通过设置参数来修改节点的颜色、边的颜色以及其他图元的颜色。具体的参数设置方式可以参考g2o_viewer的使用文档或者相关的帮助文档。 总之,要在g2o_viewer中修改颜色有多种方法,可以通过代码修改或者设置参数来实现。具体选择哪种方法取决于个人的需求和熟悉程度。不过无论采用哪种方法,都需要对g2o_viewer有一定的了解。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值