我使用countplot
编写了以下代码来绘制工厂分组的异常数量:
import seaborn as sns
sns.countplot(x='factory', hue='anomaly', data=train_df)
这是有效的(但图像宽度非常小),但我需要绘制一个图表,显示按工厂和异常分组的产品数量。
我该怎么做?
图表可能非常大,因为有数十个异常和组件,所以我可能需要生成更大的图像。你有什么建议?
以下是一小部分数据:
product_id,factory,anomaly,component
1,1,AC1,W2
2,3,AB1,J1
3,2,AC3,L3
4,4,BA2,T2
5,3,BA2,T2
6,1,AA1,X2
7,4,AC2,J1
8,2,CA1,N1
9,2,AB3,J1
10,4,BB3,W1
11,2,AC3,C3
12,4,CA1,M1
13,3,BC3,Q1
14,2,AC2,O3
这是完整的网址:CSV
情节应该如何:
答案 0 :(得分:1)
我想你想创建一个像
这样的计数图import seaborn as sns
sns.countplot(x='anomaly', hue='factory', data=df)
plt.setp(ax.get_xticklabels(), rotation=90)
您还可以创建工厂和异常的数据透视表,其中包含不同组件的数量作为值。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("data/component_factory.txt")
piv = df.pivot_table(values='component', index='anomaly', columns='factory',
aggfunc=lambda x: len(x.unique()))
piv.plot.bar(width=0.8)
plt.show()