我正在使用 seaborn 創建我的資料集的小提琴圖,它是五個間隔,每個間隔包含 100 個值。這些值變化很大,從 1 到 2622873。為了使圖形可讀,我決定使用對數 y 刻度,但這會導致小提琴圖出現問題。即小提琴底部的胡須永遠不會四舍五入并一直持續到負無窮大。使用箱線圖時這不是問題(參見注釋行)。請注意,我的資料集中的最小值是 1。有沒有辦法將底部的小提琴圖四舍五入,類似于它在箱線圖中的樣子?
這是小提琴圖,這是箱線圖箱線圖
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
data = {'interval1':col1,'interval2':col2,'interval3':col3,'interval4':col4,'interval5':col5}
df = pd.DataFrame(data)
sns.set_style("whitegrid")
plt.yscale("log")
plt.ylim(10**(0), 10**7)
plt.xlabel("x")
plt.ylabel("y")
sns.violinplot(data=df, palette="muted", scale="count", inner="quartile")
#sns.boxplot(data=df, palette="muted")
plt.show()
uj5u.com熱心網友回復:
目前,violinplot如果軸是對數縮放的,則不計算對數空間中的密度估計;它計算線性網格上的密度,然后縮放這些值。箱線圖也是如此,但箱線圖基于分位數,并且在對數轉換時不會改變(但請注意對數圖版本中例外值的不平衡)。
在將資料提供給任一函式之前,您需要記錄轉換資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/473885.html
標籤:Python matplotlib 海运
下一篇:總結'剩余'餅圖更具可讀性
