Пытаемся понять, как именно вводятся данные Surface plot для plotly. В каждом примере, который я видел, все значения были числовыми, а желаемый ввод - чтобы x или y были категорией.
В тестовом примере у меня есть 3 состояния, которые имеют значение «count» для каждой недели. Я хочу видеть прогрессирование «счетчика» каждого штата по неделям. Данные изначально структурированы так
import pandas as p
import plotly.graph_objects as go
# dummy categorical data
labels = ['state','week','count']
test_data = [
['Washington', 1, 5],
['Washington', 2, 3],
['Washington', 3, 1],
['Washington', 4, 0],
['California', 1, 2],
['California', 2, 4],
['California', 3, 6],
['California', 4, 8],
['New York', 1, 0],
['New York', 2, 5],
['New York', 3, 5],
['New York', 4, 15]]
dataFrame = p.DataFrame(test_data, columns=labels)
где потом становится сложно, я не уверен, как это должно быть структурировано, поэтому при просмотре сюжета у вас есть
- ось X, содержащая каждую неделю
- ось Y, содержащая каждое состояние
- ось Z, показывающая количество для каждого состояния по неделям
Я пробовал много разных методов на этом этапе, и я могу сказать, что он понимает максимальное значение для Z, потому что шкала цветовой шкалы достигает максимального значения в фрейме данных, но я не могу понять, что мне нужно для этого каждое состояние правильно отображается в виде собственной отметки, каждая неделя отображается на другой оси, а z соответствует непосредственно значению «count» week: state из фрейма данных. Ни один из опробованных методов не дал результатов, настолько различающихся, что показывать их здесь было бы бесполезно.
Есть ли у кого-нибудь практический рабочий пример с реальными категориальными данными или знает, как структурировать вышеуказанный фрейм данных, чтобы на графике поверхности отображалось количество состояний с течением времени?
Более конкретный способ спросить это: как вы берете фрейм данных, где 3 столбца должны быть вашими X, Y и Z, и отображать их как таковые на графике поверхности? между X и Y, один из них должен быть строкой, представляющей категорию, а другой должен иметь возможность быть datetime или int.