Я прохожу онлайн-курс по науке о данных, который использует Plot.ly с Cufflinks для построения данных. Я пытаюсь понять, как работает поверхностный график. Это образец данных, предоставленный автором курса:
df3 = pd.DataFrame({'x':[1,2,3,4,5],'y':[10,20,30,20,10],'z':[5,4,3,2,1]})
Я пытался построить это так, но сюжет выходит пустым:
df3.iplot(kind='surface',colorscale='rdylbu', x='x', y='y', z='z')
На изображении рисунка, когда я нажимаю «Экспорт в plot.ly», сгенерированная электронная таблица соответствует моему набору данных, т. е. x = [1, 2, 3, 4, 5], y = [10, 20, 30, 20, 10], а z = [5, 4, 3, 2, 1]. Но цифра по-прежнему пуста. Основываясь на наборе данных, я ожидал, что график поверхности будет содержать следующие точки (в порядке x, y, z):
Я не уверен, как автор онлайн-курса создал поверхностный график, используя данные из df3, потому что z должен быть двумерным массивом (документацию можно посмотреть здесь), а df3.iplot(kind='surface',colorscale='rdylbu', x='x', y='y', z='z') не будет понят сюжетом, потому что это передает одномерный массив параметру z. Возможно, они использовали более раннюю версию plotly?
Насколько я могу судить, этот вопрос не определен четко, потому что существует несколько графиков поверхности, которые могут включать эти 5 точек, но с целью получения графика поверхности я составлю возможный 2D-массив для столбца z столбца df3 . Обратите внимание, что вы можете изменить любое из значений в массиве, передаваемом в z, и график сможет отобразить его, если форма соответствует x и y.
df3 = pd.DataFrame({'x':[1,2,3,4,5],'y':[10,20,30,20,10],'z':[[5,4,0,0,0],[3,4,0,0,0],[2,2,3,0,0],[1,1,1,2,0],[0,0,0,0,1]]})
df3.iplot(kind='surface',colorscale='rdylbu', x='x', y='y', z='z')