如何更改三元图的轴刻度顺序?

Posted

技术标签:

【中文标题】如何更改三元图的轴刻度顺序?【英文标题】:How to change order of axis ticks for a ternary diagram? 【发布时间】:2021-12-02 19:23:09 【问题描述】:

是否可以反转比例,例如 AC 从 0.1-1 到 1-0.1?

【问题讨论】:

【参考方案1】:

根据github 12.09.2019 上的声明,这在当时是不可能的:

很遗憾,我们目前不提供执行此操作的方法。这 不过,这对图书馆来说是一个很好的补充。

仔细查看ternary 轴的结构,似乎没有一个属性可以让您更改轴的顺序:

layout.ternary.Aaxis(
    'color': '#444',
    'exponentformat': 'B',
    'gridcolor': 'white',
    'gridwidth': 1,
    'hoverformat': '',
    'layer': 'above traces',
    'linecolor': 'white',
    'linewidth': 1,
    'min': 0,
    'minexponent': 3,
    'nticks': 6,
    'separatethousands': False,
    'showexponent': 'all',
    'showgrid': True,
    'showline': True,
    'showticklabels': True,
    'tickfont': 'color': '#2a3f5f', 'family': '"Open Sans", verdana, arial, sans-serif', 'size': 12,
    'tickformat': 'g',
    'tickmode': 'auto',
    'tickprefix': '',
    'ticks': '',
    'ticksuffix': '',
    'title': 'font': 'color': '#2a3f5f', 'family': '"Open Sans", verdana, arial, sans-serif', 'size': 14,
              'text': 'Joly'
)

【讨论】:

是的,在有人提交 PR 之前,此功能可能无法使用。可能的解决方法是绘制从 (1.0-A) 生成的值而不是 A 的值并以相反的顺序提供刻度数组? @DerekO 没试过。但这似乎是一种可能!【参考方案2】:

ternary 绘图必须具有这样的轴,使得对于值为 1 的任何给定轴,其他两个轴的值为 0(假设总和为 1)...因此反转轴将反转其他两个轴.

所以关于...的问题

是否可以反转比例,例如 AC 从 0.1-1 到 1-0.1?”

...答案是否定的,不可能只反转一个轴。

@vestland 指出this question 但这种情况仅适用于在三元图中仅使用两个维度,从上面提出的问题中提供的图片来看,情况并非如此。

【讨论】:

以上是关于如何更改三元图的轴刻度顺序?的主要内容,如果未能解决你的问题,请参考以下文章

使用多个连接的箱线图更改 Matplotlib 中的轴刻度

如何更改 matplotlib 图的日期时间刻度标签频率?

如何更改熊猫时间序列图的 x 刻度密度?

如何从 plotly 中删除图中的轴刻度线?

如何解决重叠的轴刻度标签

如何分别格式化每个 ggplot 面板的轴刻度标签?