簡體   English   中英

Matplotlib圖已合並數據

[英]Matplotlib plot already binned data

我想繪制一組圖像的平均局部二進制圖案直方圖。 這是我所做的:

#calculates the lbp
lbp = feature.local_binary_pattern(image, 24, 8, method="uniform")

#Now I calculate the histogram of LBP Patterns
(hist, _) = np.histogram(lbp.ravel(), bins=np.arange(0, 27))    

之后,我簡單地總結所有LBP直方圖並取它們的平均值。 這些是找到的值,這些值保存在txt文件中:

2.962000000000000000e + 03

1.476000000000000000e + 03

1.128000000000000000e + 03

1.164000000000000000e + 03

1.282000000000000000e + 03

1.661000000000000000e + 03

2.253000000000000000e + 03

3.378000000000000000e + 03

4.490000000000000000e + 03

5.010000000000000000e + 03

4.337000000000000000e + 03

3.222000000000000000e + 03

2.460000000000000000e + 03

2.495000000000000000e + 03

2.599000000000000000e + 03

2.934000000000000000e + 03

2.526000000000000000e + 03

1.971000000000000000e + 03

1.303000000000000000e + 03

9.900000000000000000e + 02

7.980000000000000000e + 02

8.680000000000000000e + 02

1.119000000000000000e + 03

1.479000000000000000e + 03

4.355000000000000000e + 03

3.112600000000000000e + 04

我試圖簡單地繪制這些值(不需要計算直方圖,因為這些值已經來自直方圖)。 這是我嘗試過的:

import matplotlib
matplotlib.use('Agg')
import numpy as np
import matplotlib.pyplot as plt
import plotly.plotly as py

#load data
data=np.loadtxt('original_dataset1.txt')
#convert to float
data=data.astype('float32')
#define number of Bins
n_bins = data.max() + 1

plt.style.use("ggplot")
(fig, ax) = plt.subplots()
fig.suptitle("Local Binary Patterns")
plt.ylabel("Frequency")
plt.xlabel("LBP value")
plt.bar(n_bins, data)
fig.savefig('lbp_histogram.png') 

但是,看看這些命令產生的圖:

在此處輸入圖片說明

我還是不明白發生了什么。 我想制作一個像我在Excel中使用相同數據制作的圖,如下所示: 在此處輸入圖片說明

我必須承認,我是matplotlib的新手。 那么,我的錯誤是什么?

嘗試這個。 這里的數組是您從垃圾箱中獲得的平均值。

array = [2962,1476,1128,1164,1282,1661,2253]
fig,ax = plt.subplots(nrows=1, ncols=1,)
ax.bar(np.array(range(len(array)))+1,array,color='orangered')
ax.grid(axis='y')
for i, v in enumerate(array):
    ax.text(i+1, v, str(v),color='black',fontweight='bold',
            verticalalignment='bottom',horizontalalignment='center')
plt.savefig('savefig.png',dpi=150)

情節看起來像這樣。 圖片

暫無
暫無

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

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