gpt4 book ai didi

python - 为什么我的线在 matplotlib 中被剪裁?

转载 作者:行者123 更新时间:2023-11-30 23:11:23 29 4
gpt4 key购买 nike

我正在尝试绘制一系列线条。这些线的长度都相同,并且随机切换颜色以达到随机长度(蓝色到橙色)。我用蓝色绘制线条,然后在上面覆盖橙色。你可以从我的图片中看到灰色线条的部分被剪掉了。我不明白为什么会发生这种情况。我认为还相关的是,我的标签没有像应有的那样移动到左对齐。非常感谢任何帮助。

Clipping bar graph

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.lines as mlines
import random

plt.close('all')
fig, ax = plt.subplots(figsize=(15,11))


def label(xy, text):
y = xy[1] - 2
ax.text(xy[0], y, text, ha="left", family='sans-serif', size=14)


def draw_chromosome(start, stop, y, color):
x = np.array([start, stop])
y = np.array([y, y])
line = mlines.Line2D(x , y, lw=10., color=color)
ax.add_line(line)


x = 50
y = 100
chr = 1

for i in range(22):
draw_chromosome(x, 120, y, "#1C2F4D")

j = 0
while j < 120:
print j
length = 1
if random.randint(1, 100) > 90:
length = random.randint(1, 120-j)
draw_chromosome(j, j+length, y, "#FA9B00")
j = j+length+1
label([x, y], "Chromosome%i" % chr)

y -= 3
chr += 1


plt.axis('equal')
plt.axis('off')
plt.tight_layout()
plt.show()

最佳答案

您仅绘制从 x = 50 到 x = 120 的蓝色背景。

替换这一行:

draw_chromosome(x, 120, y, "#1C2F4D")

这样:

draw_chromosome(0, 120, y, "#1C2F4D")

将蓝线一直划过。

或者,如果您还想将标签向左移动,则只需设置 x=0 而不是将其设置为 50。

关于python - 为什么我的线在 matplotlib 中被剪裁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30185199/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com