我正在嘗試使用以下代碼繪制直方圖:
plt.subplots(figsize = (10,6))
lbins=[0,85,170,255,340,425]
plt.hist(flt_data['tree_dbh'], bins=lbins)
plt.gca().set(title='樹徑直方圖', ylabel='頻率')
輸出如下:

輸出不包括直方圖中的所有資料。
以下是該列的描述性統計資訊:

uj5u.com熱心網友回復:
您可以設定對數 y 軸以更好地顯示小條。您還可以嘗試使用 seabornsns.boxenplot(flt_data['tree_dbh'])來更好地可視化分布。
這是一個帶有模擬資料的示例。df.describe()顯示:
count 65000.000000
mean 12.591938
std 13.316495
min 0.000000
25% 2.000000
50% 9.000000
75% 18.000000
max 150.000000
Name: data, dtype: float64
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
np.random.seed(2402)
df = pd.DataFrame({'data': (np.random.normal(3, 2, 65000) ** 2).astype(int)})
df['data'].describe()
lbins = [0, 85, 170, 255, 340, 425]
fig, (ax1, ax2, ax3) = plt.subplots(ncols=3, figsize=(14, 4))
ax1.hist(df['data'], bins=lbins, fc='skyblue', ec='black')
ax1.set_title('histogram with scalar y-axis')
ax2.hist(df['data'], bins=lbins, fc='skyblue', ec='black')
ax2.set_yscale('log')
ax2.set_title('histogram with log y-axis')
sns.boxenplot(x=df['data'], color='skyblue', ax=ax3)
ax3.set_title('sns.boxenplot')
plt.tight_layout()
plt.show()

uj5u.com熱心網友回復:
看起來您的所有資料都在第一個欄中。不是條形或缺失,只是它們的值與第一個相比非常小。
您有 652173 個點值,平均值為 11.7,標準值為 8.6。這意味著最大值 425 很可能是例外值。
嘗試這樣做:
lbins = np.arange(0,100, 10)
你也可以看看len(flt_data['tree_dbh'][flt_data['tree_dbh'] > 85])它會告訴你在你看不到的其他欄中計算了多少分
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/433216.html
標籤:Python matplotlib 直方图
