摆脱 Pandas 或其 PieChart 可视化引擎中无关紧要数据的聪明方法?
A smart way to get rid of insignificant data in Pandas or its visualization engine for PieChart?
可能会有很多无关紧要的边缘情况和数据噪声。我想要一个饼图(基于 Bokeh 或任何其他开源、免费的绘图库),可以看到这样的数据:
type size
S 1
V 2
T 200
...
Z 3333
减少到它的核心,将微不足道的(< 1% 类型大小)噪声放入新的 "other" 类型中。
1) Pandas 可以自己做吗?如何?
2)是否有一些可视化已经集成了这样的功能?
考虑 pandas 系列 a
和值计数
import pandas as pd
import numpy as np
from string import ascii_uppercase
np.random.seed([3,1415])
types = np.random.permutation(list(ascii_uppercase))
r = np.arange(1, 27)
r = r / r.sum()
s = np.random.choice(types, 10000, p=r)
a = pd.value_counts(s)
a.plot.pie(colormap='jet');
现在将所有代表少于 3% 的组归为一组 other
n = a / a.sum()
f = n < .03
a[~f].append(pd.Series(a[f].sum(), ['other'])).plot.pie(colormap='jet')
可能会有很多无关紧要的边缘情况和数据噪声。我想要一个饼图(基于 Bokeh 或任何其他开源、免费的绘图库),可以看到这样的数据:
type size
S 1
V 2
T 200
...
Z 3333
减少到它的核心,将微不足道的(< 1% 类型大小)噪声放入新的 "other" 类型中。
1) Pandas 可以自己做吗?如何? 2)是否有一些可视化已经集成了这样的功能?
考虑 pandas 系列 a
和值计数
import pandas as pd
import numpy as np
from string import ascii_uppercase
np.random.seed([3,1415])
types = np.random.permutation(list(ascii_uppercase))
r = np.arange(1, 27)
r = r / r.sum()
s = np.random.choice(types, 10000, p=r)
a = pd.value_counts(s)
a.plot.pie(colormap='jet');
现在将所有代表少于 3% 的组归为一组 other
n = a / a.sum()
f = n < .03
a[~f].append(pd.Series(a[f].sum(), ['other'])).plot.pie(colormap='jet')