[英]How to create a dynamic piechart out of two dimensional Numpy array?
Python 2.7
需要你幫助從Numpy數組創建一個餅圖。 目前我嘗試的每種方法都不會顯示圖表。
Numpy數組如下所示。
array([['A' '506']
['B' '80']
['C' '6']
['...' '15']
['Z' '7']],dtype = '|S21')
行數,列值將更改。 列的數量和種類將保持不變。
我試過了:
將數組轉換為Pandas數據集,應用正確的類型並創建如下所示的plt.pie。 沒有顯示圖表。
dataset = pd.DataFrame(**array**, columns = ['Description','Metric']) dataset[['Metric']] = dataset[['Metric']].apply(pd.to_numeric) colors = ["#...", '#...', '#...','#...', '#...', '#...', '#...', '#...', '#...', '#...', '#...'] plt.pie( x = dataset['Metric'], labels=dataset['Description'], shadow=False, colors=colors, autopct='%1.1f%%', ) plt.axis('equal') plt.tight_layout() plt.show
將其更改為列表,將元素添加為列表。 沒有顯示圖表。
metrics = list(dataset['Metric']) descriptions = list(dataset['Description']) plt.pie( x = metrics, labels=descriptions, ... )
數據集本身看起來不錯,但由於無法創建繪圖,因此數據框格式似乎存在一些問題...
>> print dataset
<<
Description Metric
0 A 506
1 B 80
2 C 6
3 D 15
...
8 X 26
9 Y 13
10 Z 7
預期結果將是這兩列中的簡單餅圖。 它應該根據Metrics值和行數以dinamically方式創建。
期待你的回復。
我真的建議將這些數據存儲為字典或pandas DataFrame
。 在下面的解決方案中,我在繪圖之前將數據轉換為字典。
import numpy as np
import matplotlib.pyplot as plt
# Data as given
data = np.array([['A', '506'],
['B', '80'],
['C', '6'],
['...', '15'],
['Z', '7']], dtype = '|S21')
# Create dictionary
data_dict = {}
# Convert byte string to string and string number to int
for row in range(data.shape[0]):
data_dict[data[row, 0].astype(str)] = int(data[row, 1])
plt.pie(data_dict.values(), labels=data_dict.keys())
這給了我以下情節:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.