![](/img/trans.png)
[英]matplotlib how do I reduce the amount of space between bars in a stacked bar chart when x-axis are dates 1-week apart?
[英]How to do I give some space between Y axis and my starting and ending vertical bars in Matplotlib
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.pyplot import figure
plt.style.use('ggplot')
overs = np.arange(1, 51)
india_score = np.random.randint(low = 1, high = 18, size = 50, dtype = 'int16')
plt.bar(overs, india_score, width = 0.80, align = 'center', color = 'orange', label = 'Runs per over')
plt.xlabel('Overs')
plt.ylabel('Score')
plt.title('India Inning')
plt.axis([1, 50, 0, 18])
plt.legend()
plt.grid(color='k', linestyle='-', linewidth=1)
fig = plt.gcf()
fig.set_size_inches(16, 9)
plt.show()
output 看起來像這樣:
如果您看到條形圖,那么首先得分的跑數和最后得分的跑數會顯示在 Y 軸上。 如何在 Y 軸和我的第一個和最后一個垂直條之間留出一些空間。 我嘗試了邊距 function 但這不起作用
我搜索了類似的帖子,但我無法理解解決方案,因為我是 matplotlib 的新手。 任何幫助將不勝感激。 謝謝。
您可以這樣做:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.pyplot import figure
plt.style.use('ggplot')
overs = np.arange(1, 51)
india_score = np.random.randint(low = 1, high = 18, size = 50, dtype = 'int16')
plt.bar(overs, india_score, width = 0.80, align = 'center', color = 'orange', label = 'Runs per over')
plt.xlabel('Overs')
plt.ylabel('Score')
plt.title('India Inning')
plt.axis([1, 50, 0, 18])
plt.legend()
plt.grid(color='k', linestyle='-', linewidth=1)
fig = plt.gcf()
fig.set_size_inches(16, 9)
left, right = plt.xlim()
plt.xlim(left-1, right+1)
plt.show()
left, right = plt.xlim()
獲取 x 軸的當前限制,而plt.xlim(left-1, right+1)
將新限制設置為相對於舊限制進一步超出了一步。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.