Python 用分类数据绘制曲面图

Python 用分类数据绘制曲面图,python,plotly,Python,Plotly,试图准确了解曲面打印输入如何为plotly工作。我所看到的每个示例都有数值,所需的输入是将x或y作为一个类别 在一个测试示例中,我有3个州每周都有一个“count”值。我想看看每个州每周的“计数”进展情况。数据最初是这样构造的 import pandas as p import plotly.graph_objects as go # dummy categorical data labels = ['state','week','count'] test_data = [ ['Washing

试图准确了解曲面打印输入如何为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的最大值,因为colorscale条在数据框中上升到最大值,但我无法确定我需要做什么,所以每个状态都正确地显示为它自己的刻度,每周都显示在另一个轴上,z与数据帧中的week:state“count”值直接对应。没有一个尝试的方法是完全正确的,结果如此不同,在这里显示它们不会增加价值

是否有人有实际的分类数据工作示例,或者知道如何构造上述数据帧,以便曲面图显示随时间变化的状态计数



一种更具体的提问方式是:如何获取一个数据帧,其中3列应该是X、Y和Z,并让它们在曲面图中显示出来?在X和Y之间,其中一个需要是表示类别的字符串,另一个需要能够是日期时间或整数。

啊,它采用与热图相同的输入。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()