我可以用单词而不是数字制作3D散点图吗?

埃里克·萨拉戈萨

我正在为学校做一个项目,想在3d散点图中解释此数据,但是在运行此代码时,我不断收到“ ValueError:无法将字符串转换为float:'Location'”:

import pandas as pd 
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

df = pd.read_csv('baseball2.csv')

fig = plt.figure()
ax = fig.add_subplot(111, projection = '3d')

x = ['Location']
y = ['Landing']
z = ['Speed']

ax.scatter(x, y, z)
ax.set_xlabel("Location")
ax.set_ylabel("Landing")
ax.set_zlabel("Speed")

plt.show()

这是不长的CSV文件:

Location, Landing, Speed,
1B, 3BF, 90,
1A, FLF, 93,
3B, 2B, 91,
2C, SRF, 92,
1C, P, 83,
2C, C, 85,
3A, FLF, 93,
2C, SRF, 84,
3A, SS, 93,
1C, CF, 92,
2B, FRF, 91,
3A, FLF, 90,
3A, FLF, 91,
1C, C, 91,
3A, C, 91,
2B, HR, 91,
2A, DRF, 92,
3B, SRF, 82,
1B, SCF, 82
帕克佩

您可以将其作为3D散点图进行处理,并为分类变量使用伪数值,但结果图将非常难以阅读。我推荐这样的3D条形图:

import matplotlib.pyplot as plt
import pandas as pd

fig = plt.figure(figsize=(10, 10))
ax = fig.gca(fc='white', projection='3d')

df = pd.read_csv('data_files/original_file.csv')
xy_data = [i for i in range(len(df[' Landing']))]

ax.bar3d(xy_data,xy_data, df[' Speed'],1,1, -df[' Speed'])
ax.set_xticklabels(df["Location"])
ax.set_yticklabels(df[" Landing"])

ax.set_xlabel("Location")
ax.set_ylabel("Landing")
ax.set_zlabel("Speed")
plt.show()

在此处输入图片说明

最后一个细节。在您的csv文件中,标题行中的着陆和速度前有一个领先的空格。调用数据框列时,请记住该空格,如我的代码所示。

附录为了回应您的评论,以下是3D散点图的代码。这两个图中的xy_data列表推导用于创建这些类型的图所需的伪数值,因为它们通常对连续变量进行操作。然后,通过set_xticklabels()和set_yticklabels()将类别变量分配给这些数字占位符。

import matplotlib.pyplot as plt
import pandas as pd

fig = plt.figure(figsize=(10, 10))
ax = fig.gca(fc='white', projection='3d')

df = pd.read_csv('data_files/original_file.csv')
xy_data = [i for i in range(len(df[' Landing']))]

ax.scatter3D(xy_data,xy_data, df[' Speed'], color = 'green')
ax.set_xticklabels(df["Location"])
ax.set_yticklabels(df[" Landing"])

ax.set_xlabel("Location")
ax.set_ylabel("Landing")
ax.set_zlabel("Speed")
plt.show()

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以用值列表制作ipywidget floatslider吗?

我们可以用一条数据线创建散点图吗

python tkinter我可以用像素制作小部件吗?有文字吗?

我可以用消费级接入点制作WiFi ESS吗?

我们可以用圆形图像作为按钮图标制作圆形 JButton 吗?

我可以用Shapeless解决吗?

我可以用$('form')代替$吗?

IP端口可以用作字母数字而不是数字吗?

Altair 散点图:我可以用大小 = 百分比或比例或其他东西代替大小 = 计数吗?

我可以用twiml将数字发送到传入的twilio呼叫吗?

C++ 如果指针指向 nullptr,我可以用数字替换它吗?

Python - 我可以用 for 循环打印出带有连续数字的变量吗?

我可以用IEnumerable <T>而不是IEnumerable <string>编写此lambda吗?

git 分支可以用数字列出吗?

如果函数不是递归的,可以用while代替吗?

可以用属性而不是整数来标记顶点吗?

如何在Python中制作3D散点图?

使用matplotlib制作3D移动散点图

如何用色调制作3D散点图?

为 3D 两轴散点图制作 Matplotlib 图例

我可以用 PHPMailer 回复我自己的邮件吗?

我可以用什么来测量 3D (x,y,z) 中的某些属性? Regionprops 文档说它仅适用于 (N, M) 但我找到了 3D regionprops PR 的信息

Angular2:我可以用箭头函数而不是方法处理@Output 返回值吗

我可以用异步管道将 observable 解包到一个视图变量而不是 ngIf 吗?

我可以用LAN电缆而不是电话电缆连接旧的TP-link路由器吗?

我可以用Java强制垃圾回收吗?

我可以用Django渲染VueJS吗?

我可以用Java扩展Kotlin委托类吗?

我可以用损坏的jpeg数据修复照片吗?