python - python中的3D绘图,z轴的帮助
问题描述
我的目标是制作这样的图表(不是使用相同的数据,而是使用相同的类型): 意见动态的 3D 时间序列
假设我有一个带有 100 列的 pandas DataFrame,其中包含 [0,1] 之间的值,它们与图中的“意见”相同。数据集df
也有 500 行,代表图形的“时间”。例如:
df:
Ind y0 y1 y2 y3 y4 y5 y6 ... 100
0 0.7 0.9 0.2 0.0 0.0 0.9 0.9 0.9 0.9
1 0.8 0.9 0.2 0.0 0.0 0.9 0.9 1.0 0.9
2 0.8 0.9 0.1 0.0 0.0 0.9 1.0 1.0 0.9
... 0.9 0.9 0.1 0.0 0.0 0.9 1.0 1.0 0.9
500 0.9 0.9 0.1 0 0 0.9 1.0 1.0 1.0 1.0
如果我们将索引视为 x 并将列视为 y 我已经设法使用以下代码将它们绘制为 2D:
fig = plt.figure(figsize=(10,10))
ax = plt.axes(projection ='3d')
for column in df:
ax.plot(df.index, df[column], marker='', color="dodgerblue", linewidth=1, alpha=0.9, label=column)
我的结果如下: 2D plot
我正在努力的是z轴。在我看来,我需要的是另一个数据集(我们称之为df_1
),其中的列填充 df
了整个行的计数。例如,仅考虑上一个示例的 6 列和 2 行,df_1
将是:
df_1:
Ind z0 z1 z2 z3 z4 z5 z6
0 1 3 1 2 2 3 3
1 1 3 1 2 2 3 3
2 1 2 1 2 2 2 1
第一行的第一个单元格df_1
是 = 1,因为df[:,0]
其中有一次 0.7。第二个是 3 因为df[:,0]
有 3 乘以 0.9 等等......
我怎样才能像示例中那样构建数据集df_1
?或者您对如何在我的图表中实现 z 轴有更好的想法?
在此先感谢您的帮助
解决方案
解决了
def map_value_counts(row):
vmap = row.value_counts().to_dict()
return row.replace(vmap)
df_1 = df.apply(map_value_counts, axis=1)`
推荐阅读
- javascript - 上下文菜单事件
- java - JavaFX GrowableDataBuffer,画布性能打嗝
- c# - 使用 C# 从 SQLite 中读取日期时间
- c# - 如何通过vb中的c#编码将数据添加到sql server中的时间戳列
- javascript - Javascript,在离开页面之前做一些事情
- python - 正则表达式 html 动态表
- php - 通过 mysql 查询使用公式:错误
- python - 将数据附加到现有的 Json 文件
- python - 添加字符串值的pyspark中存在的值
- spacy - rasa_nlu spacy 的构建轮失败和thinc 的构建轮失败