簡體   English   中英

基於Label名稱的彩色條形圖

[英]Color Bar Chart Based on Label Name

我是 python 的新手,所以請像我 2 歲一樣隨意解釋。

我正在嘗試通過根據行中的字符串過濾內容來處理電子表格並創建多個條形圖。 我現在要確保所有條形圖都具有基於 label 的一致條形配色方案。 例如,有效=綠色、無效=紅色、不適用=灰色等。並非所有標簽都會出現在每個條形圖中,所以我不能依賴訂購 colors,我需要通過分配配對來具體說明。 我假設我需要創建一個索引,然后創建一個顏色映射,但我不確定如何執行此操作。

代碼是;

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

filtered_audit_result_columns = pd.read_csv('audit_results.csv', usecols=["Title", "Implementation Status"])

guidelines_for_data_centre = filtered_audit_result_columns [filtered_audit_result_columns ['Title'].str.contains('Guidelines for Data Centres')]

print(guidelines_for_data_centre)
                              Title Implementation Status
0   Guidelines for Data Centres             Effective
1   Guidelines for Data Centres         Not Effective
2   Guidelines for Data Centres         Not Effective
3   Guidelines for Data Centres         Not Effective
4   Guidelines for Data Centres             Effective
5   Guidelines for Data Centres        Not Applicable
6   Guidelines for Data Centres             Effective
7   Guidelines for Data Centres         Not Effective
8   Guidelines for Data Centres         No Visibility
9   Guidelines for Data Centres         No Visibility
10  Guidelines for Data Centres        Not Applicable
11  Guidelines for Data Centres         No Visibility
12  Guidelines for Data Centres             Effective
13  Guidelines for Data Centres        Not Applicable
count = guidelines_for_data_centre['Implementation Status'].value_counts()

print(count)
################################
Not Effective     4
Not Applicable    3
Effective         4
No Visibility     3
################################
hbar = count.plot.barh(x= 'Implementation Status')

任何意見,將不勝感激。

謝謝

如果您使用 seaborn,您可以使用字典作為palette 您還可以調用已進行計數的sns.countplot (並跳過count_values() )。

這是一個代碼示例:

import seaborn as sns
import pandas as pd
import numpy as np

my_color_dict = {'Effective': 'limegreen', 'Not Effective': 'crimson',
                 'Not Applicable': 'silver', 'Not Visible': 'skyblue'}
guidelines_for_data_centre = pd.DataFrame({'Implementation Status': np.random.choice(
     ['Effective', 'Not Effective', 'Not Applicable', 'Not Visible'], 100, p=[0.2, 0.5, 0.3, 0.0])})
sns.countplot(data=guidelines_for_data_centre, x='Implementation Status', palette=my_color_dict)

sns.countplot 具有一致的顏色

暫無
暫無

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

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