簡體   English   中英

如何在 Y 軸和 Matplotlib 中的開始和結束垂直條之間留出一些空間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM