Python中PCA的plotly tutorial包含可视化iris dataset中包含的变量分布的步骤。
由于该数据集包含4个变量和3个类,因此相应的代码是静态的(即,硬编码的彩色RGB值)。
traces = []
colors = {'Iris-setosa': 'rgb(31, 119, 180)', # Not scalable
'Iris-versicolor': 'rgb(255, 127, 14)', # Not scalable
'Iris-virginica': 'rgb(44, 160, 44)'} # Not scalable
for col in range(4): # Not scalable
for key in colors:
traces.append(Histogram(x=all_variables[class_variables==key, col],
opacity=0.75, xaxis='x%s' %(col+1),
marker=Marker(color=colors[key]),
name=key, showlegend=legend[col]))
我们正在将其转换为可扩展的解决方案,该解决方案将自动适应具有其他数量变量的其他数据集。
例如,for col in range(4)
可以写为for col in range(len(df_dataset.columns)-1)
。
我对如何以可扩展方式进行颜色选择部分的建议感兴趣。 Plotly的colorscale documentation不包括直方图。另一种选择是预先定义一组例如20种颜色,然后即时将它们分配给各个变量。由于这也不是可扩展的,因此我感谢任何高级想法。
如何找到可扩展的解决方案,以将N种颜色分配给绘图直方图中的N个变量?