簡體   English   中英

Seaborn圖中更大的x軸范圍

[英]Bigger x-axis range in seaborn plot

我正在用matplotlib / seaborn繪制條形圖,范圍是最小/最大值,加上它會跳過具有0個計數的值。 如何既填充范圍又不跳過0值?

# bar
ax2 = figDayMonth.add_subplot(2,1,2)
ax2 = sns.countplot(x=np.asarray(dayMonth), palette="pastel")
ax2.set_title('Days of Month Counts', FontSize=20)
ax2.tick_params(labelsize=15)
ax2.set_ylabel("Count", FontSize=16)
ax2.set_xlabel("Day of Month", FontSize=16)
sns.despine(left=True, bottom=True, top=True, right=True)
plt.show()
print(2*'\n')

在此處輸入圖片說明

dayMonth是具有上述計數的整數列表。 盡管例如沒有2、29或30個值,但我仍希望該圖為這些值保留一個位置。

我嘗試了ax2.set_xticks(np.arange(32))但這似乎只是在不更改x軸值的情況下將我的圖向左擠壓。

本質上,您想繪制輸入列表的直方圖。 該直方圖可以使用

x = np.arange(1,33)
plt.hist(dayMonth, bins=x)

一個完整的例子是

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

dayMonth = [1,3,12,30,2,3,12,16,18,31,3,13,16,18,30,1,3,12,16,18,30]
x = np.arange(1,33)    
_,_,bars = plt.hist(dayMonth, bins=x, align="left")

colors=sns.color_palette(palette="pastel", n_colors=len(x))
for color, bar in zip(colors, bars):
    bar.set_color(color)
plt.gca().set_xlim(-1,32)
plt.xticks(x[:-1])
plt.show()

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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