看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas plotting.andrews_curves 生成安德鲁斯曲线(Andrews Curve) 的 matplotlib 图,用于可视化多变量数据的集群。
安德鲁斯曲线有助于可视化是否存在基于给定分组的数字特征的固有分组。安德鲁斯曲线具有函数形式:
f(t) = x_1/sqrt(2) + x_2 sin(t)
+ x_3 cos(t) + x_4 sin(2t)
+ x_5 cos(2t) + …
其中 x 系数对应于每个维度的值,并且 t 在 -pi 和 +pi 之间呈线性间隔。 然后每一行框架对应于一条曲线。
pandas 可以简单地绘制出安德鲁斯曲线:
df = pd.read_csv(
'https://raw.github.com/pandas-dev/'
'pandas/main/pandas/tests/io/data/csv/iris.csv'
)
pd.plotting.andrews_curves(df, 'Name')
# <AxesSubplot:title={'center':'width'}>
如果用原生的 matplotlib 代码绘制比较麻烦,另外一个例子:
from pandas.plotting import andrews_curves
# Import
df = pd.read_csv("https://github.com/selva86/datasets"
"/raw/master/mtcars.csv")
df.drop(['cars', 'carname'], axis=1, inplace=True)
# Plot
plt.figure(figsize=(12,9), dpi= 80)
andrews_curves(df, 'cyl', colormap='Set1')
# Lighten borders
plt.gca().spines["top"].set_alpha(0)
plt.gca().spines["bottom"].set_alpha(.3)
plt.gca().spines["right"].set_alpha(0)
plt.gca().spines["left"].set_alpha(.3)
plt.title('Andrews Curves of mtcars', fontsize=22)
plt.xlim(-3,3)
plt.grid(alpha=0.3)
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.show()
语法如下:
pandas.plotting.andrews_curves(frame, class_column,
ax=None, samples=200, color=None, colormap=None, **kwargs)
参数:
**kwargs
:传递给 matplotlib plotting 绘图方法的关键字参数。返回:
class:matplotlip.axis.Axes
更新时间:2022-06-17 23:57:00 标签:pandas python 绘图 安德鲁斯曲线