matplotlib 如何减少分类x轴上的条形宽度

ve7v8dk2  于 2023-05-29  发布在  其他
关注(0)|答案(1)|浏览(346)

我想在条形图上绘制一个值,但条形图非常厚,我希望条形图更薄。

import matplotlib.pyplot as plt

# Data for the bar plot
x = ['Category']
y = [10]

# Create a figure and axis with a narrower width
fig, ax = plt.subplots(figsize=(4, 4))

# Adjust the width of the bars
bar_width = 0.3  # Decrease this value to make the bars thinner

# Plot the bars
ax.bar(x, y, width=bar_width)

# Show the plot
plt.show()

qvsjd97n

qvsjd97n1#

一种方法是使用xlim()。因为你有分类x轴,所以它被设置为0。因此,您可以使用-1和1的限制来使其变薄。差异越大,钢筋越薄...

x = ['Category'] 
y = [10]
fig, ax = plt.subplots(figsize=(4, 4))
bar_width = 0.3
ax.bar(x, y, width=bar_width)
ax.set_xlim(-1, 1)
plt.show()

另一种相对于x轴更改条形宽度透视图的方法是使用ax.margins(x=1)增加x轴边距
给定x = ['Category']ax.get_xticklabels()得到[Text(0, 0, 'Category')]
给定x = [0]ax.get_xticklabels()的结果为

[Text(-0.2, 0, '−0.20'),
 Text(-0.15000000000000002, 0, '−0.15'),
 Text(-0.1, 0, '−0.10'),
 Text(-0.04999999999999999, 0, '−0.05'),
 Text(0.0, 0, '0.00'),
 Text(0.04999999999999999, 0, '0.05'),
 Text(0.10000000000000003, 0, '0.10'),
 Text(0.15000000000000002, 0, '0.15'),
 Text(0.2, 0, '0.20')]

它可以更好地显示条形图相对于x轴刻度范围的宽度。条形图的宽度相同,但x轴的范围更大。

相关问题