python - 如何以 plotly 方式显示点网格?

标签 python matplotlib grid plotly points

我是编程新手,我正在尝试使用 Python(Jupyter Notebook)使用 Plotly 创建一个简单的绘图,该绘图在网格配置中具有一堆点。在这个例子中,我只是制作了一个 5 x 5 的点网格。我可以使用 Matplotlib 成功完成此操作,但使用 Plotly 则不行。如何让 Plotly 像 Matplotlib 一样制作点网格?对于 Plotly,它不会显示所有要点。我想使用 Plotly,因为它更具交互性,而且我正在单独做一些事情,我试图在 Plotly 仪表板中放置一个像这样的简单点网格图。这是我现在的代码。我将不胜感激任何帮助。谢谢!

# Import libraries
import numpy as np
import plotly.graph_objs as go
import matplotlib.pyplot as plt
%matplotlib inline

# Set up sample data
posX = [0, 1, 2, 3, 4]
posY = [-2, -1, 0, 1, 2]
posXX, posYY = np.meshgrid(posX, posY)

# Use Matplotlib
f, ax = plt.subplots()
ax.plot(posXX, posYY, 'o', ms=5)
ax.set_xlabel('X Position')
ax.set_ylabel('Y Position')
ax.set_title('Point Grid');

# Now use Plotly
fig = go.Figure()
fig.add_trace(go.Scatter(x = posXX, y = posYY, mode = 'markers'))
fig.update_layout(title = 'Point Grid',
                  xaxis_title = 'X Position',
                  yaxis_title = 'Y Position',
                  hovermode = 'x')

最佳答案

下面的示例代码可用于在 Plotly 中创建网格:

示例代码:

from plotly.offline import iplot

colours = ['blue', 'orange', 'green', 'red', 'purple']

layout = {'title': 'Point Grid'}
traces = []

for x, y, c in zip(posXX.T, posYY.T, colours):
    traces.append({'x': x,
                   'y': y,
                   'mode': 'markers',
                   'marker': {'color': c,
                              'size': 10},
                   'name': c})

layout['xaxis'] = {'title': 'X Position'}
layout['yaxis'] = {'title': 'Y Position'}

iplot({'data': traces, 'layout': layout})

输出:

enter image description here

评论:

我在这里故意使用了较低级别的 Plotly 代码,因为(个人)我觉得它为 graph_objects 表面下发生的情况提供了更高级别的透明度,并且提供了更简单的配置.

关于您遇到的问题,这是因为 Plotly 处理 meshgrid 布局的方式与 matplotlib 略有不同。因此,我使用了一个非常简单的 for 循环和 zip() 函数来保留现有的数据集。

关于python - 如何以 plotly 方式显示点网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64700711/

相关文章:

python - "OSError: cannot identify image file"使用 PIL/Image 打开图像

python - Bash 隐形打字

Python:根据点值制作一致的 3D 图

javascript - extjs3.4 gridpanel rowselect 事件不起作用

url - Extjs 4 - 如何从当前加载的网格商店中获取带有参数的完整 url?

css - 960 网格的 clearfix 与 HTML5 Boilerplate 的 clearfix - 有什么区别?

python - 是否有可能立即重新加载 Python 模块?

python - 类型是否在 python 中创建类 'Object'

python - 如何使用 contourf() 制作动画?

python - 轮廓路径偶尔为空