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是不支持虚线,实线就用trueitemStyle:{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是不支持虚线,实线就用trueitemStyle:{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\pyecharts 实现:两条折线,重叠部分为实线,未重叠部分为虚线相关推荐
- 解决ECharts两条条折线图数据一样时,拐点处数据重合(设置ECharts两条折线图拐点处数据一上一下)
解决办法:在series里选择一条数据,给其label的position赋值为"top"或"bottom",与另一个进行区分. 示例代码如下: option = ...
- php怎么创建两条折线图,excel折线图怎么做两条
excel折线图怎么做两条? 1.随便编两组数据,这两组数据横坐标的值以及数量都不相同,要求将这两组数据做成一张折线图. 2.首先选中第一组数据,点击插入--散点图--选择带直线和数据标记的散点图(就 ...
- matlab在一张图上画两条折线图,excel2013怎么在一张曲线图上绘制多条曲线?
office软件每年的更新速度很快,虽然更新后的版本肯定能够实现更新前的功能,但是由于版式方面的改进,使得使用者初次使用时不是特别得心应手.下面重点讲述一下,如何利用excel2013在同一张图中做多 ...
- python绘制两条折线图
from pylab import * # 这里可以调整图片大小 plt.figure(figsize=(18,9)) # x轴 x_axis_data = ['9-26','9-27', '9-28 ...
- echarts多条折线时,默认显示一条
需求:当前有4条折线,默认只显示两条折线 看了一下echarts的文档,legend属性的selected可以控制 legend: {orient: "vertical",show ...
- Excel实现双Y轴折线图(四条折线中有两个主轴两个副轴)
一.需求 我在网上找到的教程都是两条折线,一个设为主轴一个设为副轴,或者一个柱状图配一个折线图. 但我的需求是一共有四个折线,两两分组,每组是同一个纵轴尺度. 可以看出其实有两条线:一条黄色一条灰色在 ...
- 两条纵坐标折线图绘制
python 两条纵坐标折线图绘制 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你 ...
- 拼接两条有重叠区域的核酸序列
目的 27F 和 1492R 是细菌 16S 核糖体基因的一对通用引物.利用这对引物扩增DNA提取物,然后进行Sanger法测序,能获得两条长度约为 800+ 的 DNA 序列.根据正链(+)和负链( ...
- origin Pro 9.0画多条三维折线图(此处以两条为例)
origin Pro 9.0画多条三维折线图(此处以两条为例) 首先,建立两个New workbook,将需要的绘制的图分别放在book1 book2-如下图 选中book1 中的三维数据,操作如下图 ...
最新文章
- Java Web项目配置环境搭建-如何增加Tomcat服务 Tomcat[内含Tomcat7资源]
- 如何在Spring Boot中玩转智能合约【修订版】
- leetcode算法题--扑克牌中的顺子
- 1920+1080+android三星手机,三星Galaxy Note3能拍摄1080p视频吗?支持1080p播放吗?
- 一步一步学Silverlight 2系列(5):实现简单的拖放功能
- 【51Nod - 1268】和为K的组合 (背包 或 dfs)
- 《Python Cookbook 3rd》笔记(3.9):大型数组运算
- html to docx
- Zookeper znode 4种类型 是什么?
- python 配置文件介绍
- 基于opencv的文本检测器
- ui-sref与$state.go()的使用
- coreldraw怎么打印荣誉证书_教你如何打印大于A4尺寸的荣誉证书和奖状
- Java温习——基本语法
- 一步搞定无法审查元素
- html表格背景图片格式,css背景颜色、背景图片,以及列表的多种样式
- 反掩码、掩码和通配符的区别
- 普华永道高级JAVA面试记录
- 《孙子兵法作战指挥之虚实篇》
- 视频教程-JavaScript从入门到精通2016版教学视频-JavaScript
热门文章
- oracle解决00302,oracle exp出现ORA-00302:必须说明SET_NO_OUTLINES 组件 解决方法
- 爬一爬xxx学校的教务网站
- java 下载payload_java获取前端在RequestPayload中的参数
- Java中的Hash碰撞是什么?该如何解决?
- 包银消费金融总经理助理汤向军:消费金融行业的大数据
- java 格式化手机号码_格式化手机号码 - T_SevenS的个人空间 - OSCHINA - 中文开源技术交流社区...
- IEEE P3217《区块链系统应用接口规范》国际标准启动
- PHP 开发者应了解的24个库
- 鸿蒙HarmonyOS 方舟框架ArkUI eTS在一个ability下创建了很多page发现不能到达
- Java反射高频面试题(附答案)