我一直在尝试用altair创建一个并行集合图,但是我不明白下面提到的代码是什么意思,特别是transform_window函数。我已经查阅了altair和vega的文档,但是仍然没有得到一个关于它的意思的线索?
import altair as alt
from vega_datasets import data
source = data.iris()
alt.Chart(source).transform_window(
index='count()'
).transform_fold(
['petalLength', 'petalWidth', 'sepalLength', 'sepalWidth']
).mark_line().encode(
x='key:N',
y='value:Q',
color='species:N',
detail='index:N',
opacity=alt.value(0.5)
).properties(width=500)
我是这么做的
df= source.copy()
cols= df.columns.tolist()
df= df.groupby(cols, as_index= False).size()
df= pd.melt(df, id_vars= ["species", "size"], value_vars= ["sepalLength", "sepalWidth", "petalLength", "petalWidth"])
df.reset_index(inplace= True)
df
更令人困惑的是,当使用计数聚合时,为什么index被设置为Nominal(因此本质上应该是定性的)。pandas的等价物是什么,因为我不太热衷于学习这些转换,并发现pandas是数据操作的更好替代品。
代码源-https://altair-viz.github.io/gallery/parallel_coordinates.html
1条答案
按热度按时间atmip9wb1#
下面是一种使用 pandas 和 matplotlib 复制图的方法,使用 seaborn 来获取数据集: