Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python matplotlib.figure.add_subplot.vlines方向_Python_Matplotlib - Fatal编程技术网

Python matplotlib.figure.add_subplot.vlines方向

Python matplotlib.figure.add_subplot.vlines方向,python,matplotlib,Python,Matplotlib,我的问题涉及到路线的方向 在这张照片中,我在记号2-6上画了一条粗线。 我的目标是将这些条形图直接绘制到每个刻度的右侧 我需要这样做,因为当我用鼠标点击我的图形时,1和2之间的任何值都将等于1。2和3之间的任何值都将等于2 因此,当有人去点击勾号2上的条时,如果他们点击了条的左侧,这将等同于错误的勾号 我希望我的问题是清楚的,我感谢任何帮助。听起来你不想要直线,而是想要矩形 V线或任何线的厚度由其笔划权重控制,以点为单位。这与绘图中数据坐标中的位置不直接对应 例如,我们可以使用ax.bar创建在

我的问题涉及到路线的方向

在这张照片中,我在记号2-6上画了一条粗线。 我的目标是将这些条形图直接绘制到每个刻度的右侧

我需要这样做,因为当我用鼠标点击我的图形时,1和2之间的任何值都将等于1。2和3之间的任何值都将等于2

因此,当有人去点击勾号2上的条时,如果他们点击了条的左侧,这将等同于错误的勾号


我希望我的问题是清楚的,我感谢任何帮助。

听起来你不想要直线,而是想要矩形

V线或任何线的厚度由其笔划权重控制,以点为单位。这与绘图中数据坐标中的位置不直接对应

例如,我们可以使用ax.bar创建在所需位置范围内的矩形:

import numpy as np
import matplotlib.pyplot as plt

# Data similar to yours
green = np.array([2.5, 1, 0.9, 0.7, 0.4])
red = green
blue = np.array([3.8, 2, 1.8, 1.5, 0.6])
x = np.arange(2, 7)

# Plot bars where the left edge will be at each x-value
fig, ax = plt.subplots()

ax.bar(x, green, width=1, color='green')
ax.bar(x, red, width=1, bottom=green, color='red')
ax.bar(x, blue, width=1, bottom=green+red, color='blue')

ax.set(xlim=[0.5, 7.5])
plt.show()

你不能用2+一个小的值而不是2.0来绘制你的线吗?如果棒材厚度总是相同的话,那就行了,但是它们是动态变化的。每次厚度改变时,我都要检查整个点列表。非常感谢您的编辑和回答,我会接受您的回答。我现在实际测试了它,并在我当前的项目中实现了它。虽然运行速度较慢,但效果很好,但这是另一个需要调试的问题。又是Thx。