我正在尝试使用matplotlib创建水平条形图。我的数据点是以下两个数组
distance = [100, 200, 300, 400, 500, 3000]
value = [10, 15, 50, 74, 95, 98]
我生成水平条形图的代码如下
plt.barh(distance, value, height=75)
plt.savefig(fig_name, dpi=300)
plt.close()
问题是我的图像像这样出现
有没有办法确保所有块的宽度相同,并跳过500到300之间的空格
答案 0 :(得分:1)
您可以确保Matplotlib将标签像标签一样对待,而不是数字。您可以通过将它们转换为字符串来实现:
import matplotlib.pyplot as plt
distance = [100, 200, 300, 400, 500, 3000]
value = [10, 15, 50, 74, 95, 98]
distance = [str(number) for number in distance]
plt.barh(distance, value, height=0.75)
请注意,您必须更改高度。
答案 1 :(得分:1)
或者,您可以使用SELECT
UID,
GetArrayElement(GetArrayElement(Record,0),3) AS DI_0,
system.timestamp AS Start
FROM
[IotHub]
WHERE
LAG(GetArrayElement(GetArrayElement(Record,0), 3),1)
OVER (LIMIT DURATION(minute, 10)) <>
GetArrayElement(GetArrayElement(Record,0), 3))
SELECT
DATEDIFF (second, LAG(system.timestamp,1)
OVER (LIMIT DURATION(minute, 10)), system.timestamp) AS zeitdiff,
UID, Start, DI_0
INTO
[toPowerBI]
FROM
Startzeit
WHERE
UID = 'WISE-4012_00D0C9E43D10'
函数将一定范围的数字用作y值,以放置水平条,然后使用range()
函数(其第一个参数为刻度线的位置,第二个参数是刻度线标签。
plt.yticks()