【问题标题】:如何在 plotly Scatter3d 中创建对数缩放轴?
【发布时间】:2022-01-20 14:47:57
【问题描述】:

在 2d 图中有类似 log_x=True 的选项,但在 3d 中似乎不存在。然而,我看到文档中的 dtick 选项中提到了日志选项。

要么搜索没有很好地索引这个,要么在线文档中没有记录。

【问题讨论】:

  • plotly express 似乎有 log_xlog_ylog_z 用于 scatter3d 图表:plotly.com/python-api-reference/generated/…。如果可以使用 plotly express 它也应该可以使用 plotly graph 对象。我认为您可以通过将轴的类型设置为 log 或其他方式来处理图形对象。不过我不确定,还没有尝试过,但我会朝那个方向搜索。

标签: plotly


【解决方案1】:

如 cmets 中所述,plotly.express 中有一个功能允许您记录轴设置。对于示例数据,我从 matplotlib 的3D scatterplot sample 中转移了函数,并创建了数据以将日志与适当的参数相匹配。

import plotly.express as px
import pandas as pd
import numpy as np
import random

n = 100

def randrange(n, vmin, vmax):
    """
    Helper function to make an array of random numbers having shape (n, )
    with each number distributed Uniform(vmin, vmax).
    """
    return (vmax - vmin)*np.random.rand(n) + vmin

df = pd.DataFrame({'x':randrange(n, 2000, 100000),
                   'y':randrange(n, 4000, 100000),
                   'z':randrange(n, 3000, 100000),
                   'category':random.choices(['AAA','BBB','CCC'], k=100)})

fig = px.scatter_3d(df, 
                    x='x',
                    y='y',
                    z='z',
                    color='category',
                    log_x=True,
                    log_y=True,
                    log_z=True)

fig.update_layout(autosize=False, height=800, width=800)
fig.show()

【讨论】:

    猜你喜欢
    • 2021-06-27
    • 2020-11-24
    • 1970-01-01
    • 2012-07-03
    • 2017-10-31
    • 2013-02-02
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    相关资源
    最近更新 更多