节点数据
关系数据
至此我们的数据也弄明白了,那么我们现在来看下echarts关系图的制作。
当前采用的是vue+ts模式的开发模式,故以下都将以此来说明。
由于使用的是ts.故需要引入类型说明
新建一个vue文件,新建dom节点,注意:如果dom节点没有设置长宽,后面渲染会不出现,因为没有给出空间
由于echarts的架子都是差不多的,重点在于series,所以本篇文章主要在series上进行说明,故先复制一份常用架子,如下
至此,我们一个基于echarts的图形基础架子搭建好了,刷新页面,没有报错,dom节点也存在。那么下面就到了创建关系力布图的时候了
按照上图,以及我们前面关于数据的说明,我们可以先创建节点数据
将节点数据设置到力布图上,在上面的options中增加节点
此时数据加上了,但是没有显示,是因为我们没有设置当前图标类型为力布图,因此在options中增加说明即可
但是这样的话,有几个问题,第一,节点过小,第二,不知道节点到底是哪个。那么我们下一步就应该给节点增加样式
1:设置节点的大小,以及形状,直接在nodes数据中进行修改
在echarts中所有的节点的样式都是通过itemStyle来进行设置的,同样的在力布图中已经可以通过itemstyle属性进行设置节点样式(也可以直接在nodes数据中设置单个节点的样式哦,这个可以自己去试下),同理节点上的文字显示问题也是如此,
按照最开始的图片已经数据说明,我们可以很明显的将关系数据编辑出来,如下
在options中增加关系数据,如下
从上面的图形以及数据中,我们可以看到,其实茅十八和韦小宝互相为兄弟关系的,但是上图中没有显示,如果我们去看dom节点,我们可以看到其实茅十八和韦小宝间有两条线,但是由于两间之间直线距离最短,所以echarts就直接给重合了,那么我们怎么解决呢,最简单的方式将重叠的线变成曲线,因此在options中增加曲线率即可
此时一个关系图的最基本的设置就配置完成了。
附加echarts力布图配置链接
https://echarts.apache.org/zh/option.html#series-graph.type
下一章将会实现节点拖拽后固定,以及文字随缩放而变化以及将某个指定的节点定位到视图中间
对照pyecharts文档照猫画虎,绘制了一个文本引用关系的关系图。
按照说明文档,关系图需要的数据包括:GraphNode(节点数据项)、GraphLink(节点间的关系数据)和GraphCategory(节点分类类目),如下图。
我自己绘制的关系图如下。试了下 'symbol' 参数指定节点图形;以及将节点连线指定为由 'source' 指向 'target' 的有向图形式。
发现当GraphNode数据中存在 'id' 属性时,GraphLink中[{'source': id_x , 'target': id_y}]必须 与GraphNode的id相对应 (参见上图Pyecharts Graph: Les Miserables),而不是与 'name' 对应。
links中的数据为[{'id': '0', 'source': '1', 'target': '0'}…]
我倒是觉得这种形式的描述并不直观,不如直接[{ 'source': 'Napoleon', 'target': 'Myriel'}…]看得更明白。
实际上GraphNode和GraphLink并不需要 'id' 属性,可以直接省去也不妨事。
一开始严格按照说明文档示例 'id' = '0',读取csv文件时加了一句 dtype=object 来指定 'id' 为字符串 '0' 而不是数字0,后来发现其实这里的数据类型对绘制关系图并无影响,类似的,节点中写成了'symbolSize': '9.4 '也不影响。
不过如前所述,其实并不需要'id'属性。
第一种方法:dataGridView1.DataSource=table 一句代码就可以了
第二种方法,一行一行的赋值
for(int i=0i<table.rows.counti++)
{
dataGridView1["列名1", i].Value = dt.Rows[i]["列名1"].ToString()
//有几列,就添加几列也可以
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)