数据可视化之美

python画比例尺

2022-08-06  本文已影响0人  球果假水晶蓝

我一直想利用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
上一篇下一篇

猜你喜欢

热点阅读