python画比例尺

我一直想利用Python matplotlib包画比例尺,就比如画下面这张图(来源于唐海宝老师jcvi包里画的染色体核型图)中的比例尺

image.png

之前我以为有专门的画图函数可以实现这样的功能,但是查询很久都没找到。今天我阅读jcvichromosome.py 中源码发现,这个比例尺是唐海宝老师用ax.plot函数画短线制作出来的。
先画一个竖线,再利用循环加短横线。 数字和单位都是通过ax.text添加

from matplotlib import pyplot as plt
ax = plt.gca()
plt.ylim(0,50)
plt.xlim(0,50)
length = 33
ax.plot((3, 3), (1, 34), "-", color="lightslategray")

x = 3
yy = 1
for i in range(0,length, 2):
    if i % 10:
        ax.plot((x, x + 0.2), (yy, yy), "-", color="lightslategray")
    else:
        ax.plot((x - 0.2, x + 0.2), (yy, yy), "-", color="lightslategray", lw=2)
        ax.text(x + 0.2 + 0.15, yy, i, color="gray", va="center")
    yy += 2
ax.text(x + 0.5 , 34 + 2, "Mb", color="gray", va="center", ha="center")
plt.show()

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介 Matplotlib可以说是Python最声名远扬的可视化库了,也是Python数据分析库的“三驾马车”之一...
    放翁lcf阅读 1,494评论 0 4
  • 之前绘图时,我们直接将数组中的值作为矩形元素的宽/高度,这种方式非常有局限性,如果数值大小比较极端,例如: 对以上...
    learninginto阅读 1,411评论 0 5
  • 比例尺是比较重要的工具,可以实现抽象数据的一个维度到一个可视化表示的映射(mapping)。可以把比例尺想像成一个...
    编程浪子阅读 691评论 0 0
  • D3.js库-6-比例尺的使用 比例尺在D3中是一个非常实用的工具,可以这样理解比例尺:的关系,从domain映射...
    皮皮大阅读 816评论 0 2
  • Continuous Scales 比例尺是 D3 的重要概念, 用来代替使用像素表示大小. 实际上上一篇中在随机...
    bei6阅读 565评论 0 0