JIGplot开发 - 应用 - 笛卡尔坐标系-转-极坐标系

写在前面

事实上,做这个坐标系转换。
目前来说,我唯一的目的是JIGCircos。主要原因是Circos,对于部分人来说:

  1. 安装太麻烦(当然有人说用conda)
  2. 绘制太麻烦,当然目前有不少网站,但有时候,我们只是要简单的绘制一些还不错的图片

这个想法产生了很久,目前也有阶段性成果。但整体还是不够优秀。JIGplot在这类坐标系转换上,一直是我不想做的事情。
主要原因不是转不好。正如之前的推文,效果还可以。
But,最麻烦的其实是文本坐标

一些尝试

以面板底部为极,进行转换

JIGplot开发 - 应用 - 笛卡尔坐标系-转-极坐标系_第1张图片
image.png

JIGplot开发 - 应用 - 笛卡尔坐标系-转-极坐标系_第2张图片
image.png

可以看得出来,标签可以已经较好的处理

测试之后,发现,由于前期JIGplot在文本旋转上还是花了一定功夫,似乎都没问题,不过这个错位,不知道是哪里引起的

subPanel.flip(JIGConstants.Direction.Up, JIGConstants.Direction.Left);
subPanel.polar(JIGConstants.Direction.Left, startAngle, endAngle);
JIGplot开发 - 应用 - 笛卡尔坐标系-转-极坐标系_第3张图片
image.png

但是在工具测试的时候,并没有发现存在这个问题。

总的来说,最后是调整完善,同时也完成了极坐标下文本堆叠的处理。(目前在考虑,是否要分染色体?毕竟不同染色体的ID也可能出现重叠?

JIGplot开发 - 应用 - 笛卡尔坐标系-转-极坐标系_第4张图片
image.png

我收回很久以前说ggplot2或者图层语法无法实现极坐标下文本重叠的情况,这几天把之前不小心想到的解决办法用JIGplot实现了下,很明显,图层语法是可以比较方便的搞定的。只要在笛卡尔坐标系里面先做一次堆叠处理(给一个权重,需要具体调整或者按最终圈大小来计算),最后再做一次coord_polar()

写在后面

需求推动工具的发展,因为要实现极坐标下的文本堆叠处理,我对绘图引擎做了一定的优化:

  1. 增加flip功能,见之前的推文
  2. 调整了link point的设置
  3. 以及很多....

终于还是让我实现了。
一旦实现了这个,Circos类似的图片,似乎已经没有实现难点了?需要的只是一些简单绘图引擎优化。

你可能感兴趣的:(JIGplot开发 - 应用 - 笛卡尔坐标系-转-极坐标系)