标签: scatter3d

用于 3D 散点图的 Matplotlib 替代方案

在应用主成分分析或线性判别分析后,我很难使用 Matplotlib 来可视化我的数据在 3 维中的重投影结果。做散点图后,我无法在缩放时轻松旋转数据或更改视角(即使缩放后旋转轴保持不变,如果缩放太多点就会消失),并且每次更改都需要一秒钟。Matplotlib 非常有用,但对于这个特定用例,它开始变得非常令人沮丧,因为它可能不是为此类任务设计的。Python 中的 Matplotlib 是否有替代品可以更好地处理 3d 散点图,并且可以在云中流畅地导航?

下图显示了一个示例。我在对应于特定类的每个数据簇周围绘制了球体,并用红色着色重叠球体。现在我想看看这些球体是如何相交的。我认为 Matplotlib 最大的问题是它不允许用鼠标移动整个图形,它只允许围绕一个固定点旋转,一旦你放大一点,这会让事情变得非常混乱。

在此处输入图片说明

python matplotlib scatter3d

5
推荐指数
1
解决办法
1935
查看次数

如何连接python ax.scatter 3D图中的点

我在 python 中有一个 3D 图,我ax.scatter(x,y,z,c='r',s=100) 从

import matplotlib.pyplot as plt

import pylab

from mpl_toolkits.mplot3d import Axes3D.
Run Code Online (Sandbox Code Playgroud)

我想用一条线连接我的点。我知道你可以用它来做,marker='-o'但这对我来说只适用于 2D 而不是 3D。任何人都可以帮忙吗?谢谢你。

python matplotlib scatter3d

5
推荐指数
1
解决办法
8774
查看次数

在循环中的Plotly中的add_trace

我想在一个循环中绘制多个迹线而不会覆盖所有先前的迹线。

在2015 年的这篇文章中,提出了通过evaluate = TRUE在plot_ly或add_trace函数中进行设置来在循环中添加跟踪的解决方案。但是,截至2017年,在较新版本的plot_ly中,evaluate它不是属性。

'scatter3d' objects don't have these attributes: 'evaluate'
Run Code Online (Sandbox Code Playgroud)

这个问题和这个问题也未能回答问题。这篇文章承认valuate = TRUE不适用于新的plotly,但没有给出解决方案。这个问题的新解决方案是什么?


我的复制/粘贴数据:

structure(list(x_1 = c(74.651438, 75.31493, 76.736865, 77.858125, 
79.347856, 80.302483), y_1 = c(249.063605, 247.149121, 245.461889, 
243.811041, 242.382685, 240.300034), z_1 = c(4.373868, 3.653744, 
4.101455, 4.134471, 4.225507, 4.890157), x_2 = c(85.468712, 86.637469, 
87.993127, 87.907308, 88.748766, 89.680155), y_2 = c(249.063405, 
247.145423, 245.46148, 244.949469, 244.005001, 242.917665), z_2 = c(4.56633, 
4.059976, 3.842906, 4.019021, 4.316799, 4.378894), x_3 = c(101.720648, 
101.70598, …
Run Code Online (Sandbox Code Playgroud)

r plotly scatter3d

5
推荐指数
1
解决办法
2852
查看次数

3D Scatterplot与Python中的字符串

我尝试在Python中使用字符串类别(即神经网络的激活函数和求解器)对x和y以及z轴上的浮点数(即NN的精度得分)进行3D散点图.

以下示例引发错误:ValueError:无法将字符串转换为float:'str1'

我按照这个文档描述了3D图:https://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html

任何想法,可能是什么问题?提前谢谢了!

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
xs=['str1', 'str2']
print(type(xs))
ys=['str3', 'str4']
print(type(ys))
zs=[1,2]
ax.scatter(xs, ys, zs)
Run Code Online (Sandbox Code Playgroud)

matplotlib python-3.x scatter3d

5
推荐指数
1
解决办法
528
查看次数

Julia 中的 3D 散点图

在 Julia 中工作并使用Plots,我有一组位于两个不同表面上的点。这些点混合在一起,使得绘制表面图看起来很垃圾,因为它试图连接两个表面上的点。我认为解决这个问题的最好方法是将点简单地绘制为空间中的点。

如何在 3D 中绘制点而不通过表面连接它们?

plot julia scatter3d

5
推荐指数
2
解决办法
5559
查看次数

根据数据框绘制 3D 散点图并按组着色

我正在做 PCA,有 10 个组件。我想根据它们的组类型绘制前 3 个组件和颜色。

from mpl_toolkits.mplot3d import Axes3D

df=pd.DataFrame(np.random.rand(30,20))
grp=round(pd.DataFrame(np.random.rand(30)*10),0)
df['grp']=grp

fig = plt.figure(figsize=(12, 9))
ax = Axes3D(fig)
y = df.iloc[:,1]
x = df.iloc[:,0]
z = df.iloc[:,2]
c = df['grp']
ax.scatter(x,y,z, c=c, cmap='coolwarm')
plt.title('First 3 Principal Components')
ax.set_ylabel('PC2')
ax.set_xlabel('PC1')
ax.set_zlabel('PC3')
plt.legend()
Run Code Online (Sandbox Code Playgroud)

这是可行的,但不幸的是并没有显示一个传说,也不相信所有可能的群体。

python matplotlib pandas scatter3d matplotlib-3d

5
推荐指数
1
解决办法
2万
查看次数

Plotly 中文本标签的背景颜色?

我正在使用 Python 中的 Plotly 显示昏暗缩减的词嵌入的一部分。我正在使用 3D 散点图,到目前为止一切正常,使用以下代码(已分解):

fig = go.Figure()
trace = go.Scatter3d(
        x=df[0],
        y=df[1],
        z=df[2],
        text=df.index,
        mode="markers+text",
        textfont=dict(
            color=["crimson"]),
        marker=dict(
            size=3),
        hoverinfo="skip")

fig.add_trace(trace)

fig.show()
Run Code Online (Sandbox Code Playgroud)

我遇到的唯一问题是数据点的某些标签重叠,这导致它们乍一看不可读。

是否可以指定文本标签的背景颜色?

编辑:

我的前 5 行df看起来像这样,所有数据都是这样构造的。索引是单词,三列是它在 3D 空间中的位置。

                        0         1         2
chancellor       1.102989  0.416767  2.071260
abdicate         0.028073  1.156498  1.911484
overthrow        2.435294 -0.305266  0.998094
candidate        0.259697  0.648845  0.448700
elections        0.122355  0.815206  1.107913
Run Code Online (Sandbox Code Playgroud)

然而,我的问题实际上并不是关于数据,而是关于定制可视化的可能性。

编辑2:

这就是我的情节。

在此输入图像描述

正如您在左下角的簇中看到的,大多数标签相互重叠。我现在希望有一个隐藏参数可以用来使这些标签更好地可见,并且我本能地寻找一种方法为所有这些标签添加白色背景,这样就可以遮挡后面数据点的标签他们。

python plotly scatter3d

5
推荐指数
1
解决办法
6435
查看次数

空白 3D Plotly 散点图

import plotly.graph_objects as go
import numpy as np
import numpy

# Download data set from plotly repo
pts = np.loadtxt(np.DataSource().open('https://raw.githubusercontent.com/plotly/datasets/master/mesh_dataset.txt'))
x, y, z = pts.T

US = [(1970, 4688.5), (1971, 4559.4), (1972, 4807.0), (1973, 4994.6), (1974, 4827.4), (1975, 4612.5), (1976, 4907.3),
      (1977, 5071.4), (1978, 5066.2), (1979, 5105.1), (1980, 4877.4), (1981, 4808.0), (1982, 4562.2), (1983, 4541.5),
      (1984, 4751.8), (1985, 4777.2), (1986, 4736.6), (1987, 4893.1), (1988, 5114.1), (1989, 5171.4), (1990, 5063.9),
      (1991, 5022.3), (1992, 5103.5), (1993, 5222.5), (1994, 5305.7), (1995, 5357.6), (1996, …
Run Code Online (Sandbox Code Playgroud)

python scatter-plot plotly scatter3d plotly-python

5
推荐指数
1
解决办法
1616
查看次数

Plotly:如何根据 3d 散点图的类别字符串值定义标记颜色?

我正在使用plotly.graph_object 来绘制3D 散点图。我想根据类别字符串值定义标记颜色。类别值为 A2、A3、A4。下面的代码如何修改?谢谢

这是我所做的:


import plotly.graph_objects as go

x=df_merged_pc['PC1']
y=df_merged_pc['PC2']
z=df_merged_pc['PC3']

color=df_merged_pc['AREA']

fig=go.Figure(data=[go.Scatter3d(x=x,y=y,z=z,mode='markers',
                                 marker=dict(size=12,
                                             color=df_merged_pc['AREA'],
                                             colorscale ='Viridis'))])
fig.show()
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

ValueError: 
    Invalid element(s) received for the 'color' property of scatter3d.marker
        Invalid elements include: ['A3', 'A3', 'A3', 'A3', 'A3', 'A3', 'A3', 'A2', 'A2', 'A2']
Run Code Online (Sandbox Code Playgroud)

python colors plotly scatter3d plotly-python

5
推荐指数
1
解决办法
8856
查看次数

您可以删除 Plotly Python Scatter3d 中的悬停坐标线吗

使用Plotly Scatter3D 时,默认的鼠标悬停效果会显示一种坐标十字准线。有没有办法去除这种效果并只显示工具提示?

python-3.x plotly scatter3d

4
推荐指数
1
解决办法
2554
查看次数