Nano Hash - криптовалюты, майнинг, программирование

Графическое изображение поверхности с категориальными данными

Пытаемся понять, как именно вводятся данные 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.

19.10.2020

Ответы:


1

Ах, он принимает те же входные данные, что и тепловая карта. X и Y - это скорее значения меток, в то время как ваши данные z - это то, что будет содержать все нанесенные на график значения. Я смог собрать это вместе, используя предыдущий пример

# grab x/y labels, create storage for z data
states = dataFrame['state'].unique()
states.sort()
weeks = dataFrame['week'].unique()
weeks.sort()
z_data = []

# extract z data using x,y coordinates within the dataframe
for week in weeks:
  row = []
  for state in states:
    val = dataFrame[
      (dataFrame['state'] == state) &
      (dataFrame['week'] == week)]['count'].values[0]
    row.append(val)
  z_data.append(row)


# create and show the Surface plot
trace = go.Surface(x=states, y=weeks, z=z_data)
data = [trace]
fig = go.Figure(data=data)
fig.show()

введите описание изображения здесь

20.10.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..