<p>这将为所有数字列和字母列提供一个热图,其中颜色表示出现的次数。这是另一种绘制信息的方式</p>
<pre><code>import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
col_dict = {
'A': [1,2,3],
'B': [3,4,4,4,5,5,6],
'C': ['A','B','C'],
'D': ['C', 'D', 'D']
}
num_cols = []
num_idx = []
letter_cols = []
letter_idx = []
for col in col_dict:
if isinstance(col_dict[col][0], int):
num_cols += col_dict[col]
num_idx.append(col)
else:
letter_cols += col_dict[col]
letter_idx.append(col)
num_cols = sorted(list(set(num_cols)))
letter_cols = sorted(list(set(letter_cols)))
num_df = pd.DataFrame(0, index=num_idx, columns=num_cols)
letter_df = pd.DataFrame(0, index=letter_idx, columns=letter_cols)
for col in col_dict:
if isinstance(col_dict[col][0], int):
for item in col_dict[col]:
num_df.loc[col, item] += 1
else:
for item in col_dict[col]:
letter_df.loc[col, item] += 1
print(num_df)
print(letter_df)
plt.set_cmap('inferno')
plt.pcolor(num_df)
plt.yticks(np.arange(0.5, len(num_df.index), 1), num_df.index)
plt.xticks(np.arange(0.5, len(num_df.columns), 1), num_df.columns)
plt.colorbar()
plt.xlabel('Counts')
plt.ylabel('Columns')
plt.title('Numerical occurrences')
plt.figure()
plt.pcolor(letter_df)
plt.yticks(np.arange(0.5, len(letter_df.index), 1), letter_df.index)
plt.xticks(np.arange(0.5, len(letter_df.columns), 1), letter_df.columns)
plt.colorbar()
plt.xlabel('Counts')
plt.ylabel('Columns')
plt.title('Aphabetical occurrences')
plt.show()
</code></pre>
<p><a href="https://i.stack.imgur.com/OiBEW.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/OiBEW.png" alt="Numerical counts"/></a></p>
<p><a href="https://i.stack.imgur.com/aEsV7.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/aEsV7.png" alt="Aphabetical counts"/></a></p>