Echarts 画图(适用于新手)

引言

写论文的时候想要画一个好看的知识图谱,接触了echarts,在此记录一下从安装到使用的过程。

安装

可以参见菜鸟教程上的安装过程Echarts的三种安装方法,在此我使用的是第一种安装方法,就是下载一个.js文件,放在你的指定目录下,后期再编写.html文件的时候,导入js的路径,就是你的存放路径。使用浏览器打开对应的html文件,就可以看到效果了。

假设我的保存路径为:My_code/echarts.js
那么我在编辑html文件的时候,在引入echarts.js的地方,就要写清楚路径,如果是和echarts.js在同一个目录下,假设在My_code下,我们创建了一个将要编辑的graph.html文件,那么在引入echarts的时候,可以直接写<script src="echarts.js">
否则就要写清楚相对路径或者绝对路径。

撰写html文件

这里给出一个我编写好的模板,具体的语法规则,可以自行查阅网上的一些资料即可。在此,给出一个关于Graph的html文件,当然你也可以建立图表的文件,可以在网上搜到相应的模板。
推荐一个网址,关于Echarts的一些教程和信息,可以在此查阅。
Echarts可以好好研究一下这个网址内容。
菜鸟教程 Echarts这是=也是一个入门教程

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>第一个 ECharts 实例</title>
    <!-- 引入 echarts.js -->
    <script src="echarts.js"></script>
</head>
 
<body>
<div id="main" style="width:1000px;height:800px"></div>
<script type="text/javascript">
    var myChart = echarts.init(document.getElementById('main'));
    var categories = [];
    for (var i = 0; i < 2; i++) {
        categories[i] = {
            name: '类目' + i
        };
    }
    option = {
        // 图的标题
        // title: {
        //     text: 'ECharts 关系图'
        // },
        // 提示框的配置
        tooltip: {
            formatter: function (x) {
                return x.data.des;
            }
        },
        // 工具箱
        toolbox: {
            // 显示工具箱
            show: true,
            feature: {
                mark: {
                    show: true
                },
                // 还原
                restore: {
                    show: true
                },
                // 保存为图片
                saveAsImage: {
                    show: true
                }
            }
        },
        legend: [{
            // selectedMode: 'single',
            data: categories.map(function (a) {
                return a.name;
            })
        }],
        series: [{
            type: 'tree', // 类型:关系图
           //layout: 'force', //图的布局,类型为力导图
			layout: 'radial',
            symbolSize: 5, // 调整节点的大小
            top: '30%',       //距离上
            left: '30%',      //左
              bottom: '20%',    //下
              right:"30%",
              //width:"5%",
            //top='18%',
            //bottom='14%',
            initialTreeDepth:5,
            roam: true, // 是否开启鼠标缩放和平移漫游。默认不开启。如果只想要开启缩放或者平移,可以设置成 'scale' 或者 'move'。设置成 true 为都开启
            //edgeSymbol: ['circle', 'arrow'],
            edgeSymbolSize: 3,
            label: {         //每个节点所对应的标签的样式
                    normal: {
                      show:true,
                        //position: 'left',       //标签的位置
                        //verticalAlign: 'middle',//文字垂直对齐方式,默认自动。可选:top,middle,bottom
                        //align: 'right',         //文字水平对齐方式,默认自动。可选:top,center,bottom
                        fontSize: 10 , 
                        color:'blue'           //标签文字大小
                        
                    }
                },
 
                leaves: {    //叶子节点的特殊配置,如上面的树图示例中,叶子节点和非叶子节点的标签位置不同
                    label: {
                        normal: {
                            //position: 'right',
                            //verticalAlign: 'middle',
                            //align: 'left',
                            fontSize: 12, 
                            color:'black'
                        }
                    }
                },
            // edgeLabel: {
            //     normal: {
            //         textStyle: {
            //             fontSize: 20
            //         }
            //     }
            // },
            force: {
                repulsion: 2500,
                edgeLength: 30
            },
            draggable: true,
            lineStyle: {
                normal: {
                    width: 2,
                    color: '#4b565b',
                     curveness :0.5
                }
            },
            // edgeLabel: {
            //     normal: {
            //         show: true,
            //         formatter: function (x) {
            //             return x.data.name;
            //         }
            //     }
            // },
            // label: {
            //     normal: {
            //         show: true,
            //         textStyle: {}
                    
            //     }
            // },
 
            // 数据
            data: [{name: "Data:Wikipedia",
            label: {         //每个节点所对应的标签的样式
                    normal: {
                      //show:true,
                        position: ['50%', '50%'],       //标签的位置
                        //verticalAlign: 'middle',//文字垂直对齐方式,默认自动。可选:top,middle,bottom
                        //align: 'right',         //文字水平对齐方式,默认自动。可选:top,center,bottom
                        fontSize: 16 , 
                        //fontWeight:'bold',
                        color:'red'           //标签文字大小
                        
                    }
                },
 children: [
  {
   name: "Used-for",
   // label: {         //每个节点所对应的标签的样式
   //                  normal: {
   //                    //show:true,
   //                      position: 'top',       //标签的位置
   //                      verticalAlign: 'middle',//文字垂直对齐方式,默认自动。可选:top,middle,bottom
   //                      align: 'right',         //文字水平对齐方式,默认自动。可选:top,center,bottom
   //                      fontSize: 13 , 
   //                      //fontWeight:'bold',
   //                      color:'blue'           //标签文字大小
                        
   //                  }
   //              },
   children: [
      {name: "Process:learn predictive expreseeions"},
      
        {name: "Process:automatically label free texts", value: 3938},
         {name: "Process:train LSA model", value: 3938},
        {name:"Data:as input paragraph"},
    {name: "Task:medical query translation", value: 3938},
      
      {name:"Task:strong domain dependence"}]},
    
	 {name: "Feature-of",
   children: [
     
      {name: "Data:comprehensive information on various topics", value: 3938},
      {name: "Data:stubs" },
      {name: "Metrics:definitional in style", value: 6714},
         {name: "Project:online collaborative editing projects"}],
    },
    {name: "Uses",
   children: [
     
      {name: "Method:LDA", value: 3938},    
      {name: "Tool:Word2vec", value: 6714},
      ],
    },
    {name: "Part-of",
   children: [
     
      {name: "Data:24 copular verbs", value: 3938},
      {name: "Data:992 Wikipedia articles", value: 3812},
      {name: "Data:>2800,000 for English"},
      {name: "Data:the alignment between YAGO and Freebase", value: 3812},
      ],
    },
    {name: "Conjunction",
   children: [
     
      {name: "Data:New York Times corpora", value: 3938},
      {name: "Data:the British National Corpus", value: 3812},
      {name:"Data:UMLS corpus"},
      {name:"Data:Unified Medical Language System corpus"},
      ],
    }]}],
            categories: categories,
        }]
    };
    myChart.setOption(option);
</script>
</body>
</html>

将文件保存为.html格式,然后用浏览器打开,即可得到你创建的图像。可以下载下来。

生成高精度矢量图片

通过上述方法(编辑html文件–>浏览器打开–>下载图片)获得到的图片,放大后会失真,而论文中,我们常常需要插入一个高精度的图片。本文介绍一种方法。

为了解决这个问题,浏览了网页上介绍的各种方案,很多都失败了,由于过去的时间有点久了,我也记不清到底有哪些方案了,在此只给出,我的最终解决方案。

  • 安装PhantomJS,根据自己的系统自行搜索安装方案。 MAC系统的可以参见这里参考1(推荐)参考2phantomjs下载网址
  • 安装 snapshot 。 pip install snapshot-phantomjs
  • 使用命令snapshot graph.html png就可以生成一个名为“output.png”的图片,图片内容就是graph.html的编辑信息。

其他使用echart的途径

python-echarts了解一下
可以参考这些资料参考1参考2
如果出现:错误信息:(但我其实已经将phantomjs添加入环境变量啊) ‘phantomjs’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 No phantomjs found in your PATH. Please install it!
我记得是版本的问题,可以更换python-echarts的版本,降低一下。(我记忆中是这个样子)
命令行生成:snapshot graph.html pdf
需要注意的问题:版本匹配

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱科研的徐博士

请各位看官赏赐,小仙女笔芯笔芯

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值