echarts\pyecharts 实现:两条折线,重叠部分为实线,未重叠部分为虚线

简介: echarts\pyecharts 实现:两条折线,重叠部分为实线,未重叠部分为虚线

echarts\pyecharts 实现:两条折线,重叠部分为实线,未重叠部分为虚线


先上效果图:

 

以下为 echarts 代码,其实 echarts 本质上是 js,所以如果会 js 代码的同学会上手更快

option = {
   title: {
       text: '数值变化',
       textStyle:{
        //文字颜色
        // color:'#ccc',
        //字体风格,'normal','italic','oblique'
        fontStyle:'normal',
        //字体粗细 'normal','bold','bolder','lighter',100 | 200 | 300 | 400...
        fontWeight:'bold',
        //字体系列
        fontFamily:'sans-serif',
        //字体大小
     fontSize:36
    },
    left:'center'  
   },
   //用formatter回调函数显示多项数据内容  
   tooltip: {  
        trigger: 'axis',  
        formatter: function (params, ticket, callback) {  
          var htmlStr = ''; 
          var valMap = {};
          for(var i=0;i<params.length;i++){  
            var param = params[i];  
            var xName = param.name;//x轴的名称  
            var seriesName = param.seriesName;//图例名称  
            var value = param.value;//y轴值  
            var color = param.color;//图例颜色  
            //过滤无效值
            if(value == '-'){
                continue;
            }
            //过滤重叠值
            if(valMap[seriesName] == value){
                continue;
            }
            if(i===0){  
              htmlStr += xName + '<br/>';//x轴的名称  
            }  
            htmlStr +='<div>';  
            //为了保证和原来的效果一样,这里自己实现了一个点的效果  
            htmlStr += '<span style="margin-right:5px;display:inline-block;width:10px;height:10px;border-radius:5px;background-color:'+color+';"></span>';  
            //圆点后面显示的文本  
            htmlStr += seriesName + ':' + value;  
            htmlStr += '</div>';  
            valMap[seriesName] = value;
          }  
          return htmlStr;  
         }  
    },
   legend: {
    //   y:'55%',
        textStyle:{
            fontSize: 26,//字体大小
            color:' #EE8262'//字体颜色
        },
       data:['调整前','调整后'],
       left:'right',
   },
  grid: {
      left: '3%',
      right: '4%',
      bottom: '40%',
      containLabel: true
  },
   toolbox: {
       feature: {
           saveAsImage: {}
       }
   },
   xAxis: {
       type: 'category',
       axisLabel: {        
                    show: true,    //这行代码控制着坐标轴x轴的文字是否显示
                      textStyle: {
                        //   color: '#fff',   //x轴上的字体颜色
                          fontSize:'24'    // x轴字体大小
                      }
                  },
       boundaryGap: false,
       data: ['8','9','10','11','12','13','14','15','16','17','18']
   },
   yAxis: {
       type: 'value',
       axisLabel: {        
                    show: true,    //这行代码控制着坐标轴x轴的文字是否显示
                      textStyle: {
                        //   color: '#fff',   //x轴上的字体颜色
                          fontSize:'24'    // x轴字体大小
                      }
                  },
       min : 0.6,
   },
   series: [
       {
           name:'调整前',
           itemStyle:{
               normal:{
                   label : {
                    show: true,
                    // position:'bottom',
                    },
               }
           },
           type:'line',        
           data:[0.88,0.87,0.85,0.81,0.78, "-", "-", "-", "-", "-", "-"]
       },
       {
           name:'调整前',
           type:'line',     
           smooth:false,   //关键点,为true是不支持虚线,实线就用true
           itemStyle:{
               normal:{
                   label : {
                    show: true,
                    position:'bottom',
                    },
                   lineStyle:{
                       width:2,
                       type:'dotted'  //'dotted'虚线 'solid'实线
                   }
               }
           }, 
           data:["-", "-","-", "-", 0.78,0.77,0.75,0.74,0.73,0.70,0.68]
       },
        {
           name:'调整前后',
           itemStyle:{
               normal:{
                   label : {
                    show: true,
                    // position:'bottom',
                    },
               }
           },
           type:'line',        
           data:[0.88,0.87,0.85,0.81,0.78, "-", "-", "-", "-", "-", "-"]
       },
       {
           name:'调整后',
           type:'line',     
           smooth:false,   //关键点,为true是不支持虚线,实线就用true
           itemStyle:{
               normal:{
                   label : {
                    show: true,
                    // position:'bottom',
                    },
                   lineStyle:{
                       width:2,
                       type:'dotted'  //'dotted'虚线 'solid'实线
                   }
               }
           }, 
           data:["-", "-","-", "-", 0.78,0.78,0.77,0.77,0.76,0.76,0.75 ]
       },
   ]
};

受到 echarts 代码的启发,我觉得既然 pyecharts 来源于 echarts,那么肯定有共通之处,终于让我发现新大陆,实现了同样的功能。不废话,上代码:

# 算法思想:把两条线拆成四条线来做
def draw_picture():
    columns = [8,9,10,11,12,13,14,15,16,17,18]
    columns = [str(item) for item in columns]
    y1 = [0.88,0.87,0.85,0.81,0.78,'-','-','-','-','-','-']
    y2 = [0.88,0.87,0.85,0.81,0.78,'-','-','-','-','-','-' ]
    y3 = ['-','-','-','-',0.78,0.77,0.75,0.74,0.73,0.70,0.68]
    y4 = ['-','-','-','-',0.78,0.78,0.77,0.77,0.76,0.76,0.75 ]
    line = Line("数值变化")
    line.add('调整前', columns, y1, is_label_show = True, yaxis_min = 0.5,label_pos = 'bottom')
    line.add('调整后',columns,y2,is_label_show = True, yaxis_min = 0.5,)
    line.add('调整前', columns, y3, is_label_show = True, yaxis_min = 0.5,label_pos = 'bottom',mark_point_symbol='diamond',line_type = 'dashed')
    line.add('调整后',columns,y4,is_label_show = True, yaxis_min = 0.5,mark_point_symbol='diamond',line_type = 'dashed')
    line.render("example.html")

以上,问题解决~

相关文章
|
定位技术 数据格式
Echarts实战案例代码(59):geomap实现飞线、散点、引导线以及重叠label的解决
Echarts实战案例代码(59):geomap实现飞线、散点、引导线以及重叠label的解决
643 0
|
JSON 数据格式
Echarts设置背景的网格线为虚线
Echarts设置背景的网格线为虚线
258 0
|
7月前
Echarts想要将相同的点重叠显示
Echarts想要将相同的点重叠显示
205 2
|
JSON 数据格式
Echarts折线图的折线实线设置成虚线
Echarts折线图的折线实线设置成虚线
203 0
|
数据格式
Echarts实战案例代码(44):同时渲染折线图实现和虚线渲染实现已发生和预测趋势的解决方案
Echarts实战案例代码(44):同时渲染折线图实现和虚线渲染实现已发生和预测趋势的解决方案
285 0
|
2月前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
76 1
|
2月前
|
JavaScript
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
440 0
|
3月前
|
Web App开发 数据可视化 前端开发
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
本文介绍了ECharts的基本使用和语法格式,包括如何引入ECharts、创建容器、初始化echarts实例对象、配置option参数和一些基础图表的绘制方法。文章还提供了简单图表绘制和使用图例添加的示例代码,以及对ECharts特性和优势的概述。
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
|
4月前
|
小程序 JavaScript
微信小程序使用echarts图表(ec-canvas)
这篇文章介绍了在微信小程序中使用`ec-canvas`集成echarts图表的方法,包括解决加载时报错的问题、配置图表组件、以及在小程序页面中引入和使用这些图表组件的步骤。
527 1
微信小程序使用echarts图表(ec-canvas)
|
4月前
|
前端开发 数据可视化 JavaScript
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码

热门文章

最新文章

下一篇
DataWorks