как скрыть заглавный заголовок yaxis (в python)? - PullRequest
2 голосов
/ 09 мая 2020

Редактирование: Следующий пример из Plotly для справки:

import plotly.express as px

df = px.data.gapminder().query("continent == 'Europe' and year == 2007 and pop > 2.e6")
fig = px.bar(df, y='pop', x='country', text='pop')
fig.update_traces(texttemplate='%{text:.2s}', textposition='outside')
fig.update_layout(uniformtext_minsize=8, uniformtext_mode='hide')
fig.show()

Как удалить слово «pop».


Что я хочу скрыть заголовок оси Y для «значения».

enter image description here Следующий синтаксис не работает.

fig.update_yaxes(showticklabels=False)

Спасибо.

1 Ответ

6 голосов
/ 09 мая 2020

Решение

Вам нужно использовать visible=False внутри fig.update_yaxes() или fig.update_layout() следующим образом. Для получения дополнительной информации см. Документацию для plotly.graph_objects.Figure .

# Option-1:  using fig.update_yaxes()
fig.update_yaxes(visible=False, showticklabels=False)

# Option-2: using fig.update_layout()
fig.update_layout(yaxis={'visible': False, 'showticklabels': False})

# Option-3: using fig.update_layout() + dict-flattening shorthand
fig.update_layout(yaxis_visible=False, yaxis_showticklabels=False)

Попробуйте сделать следующее, чтобы проверить это:

# Set the visibility ON
fig.update_yaxes(title='y', visible=True, showticklabels=False)
# Set the visibility OFF
fig.update_yaxes(title='y', visible=False, showticklabels=False)

Как создать фигуру непосредственно с меткой скрытой оси и метками

. Вы можете сделать это напрямую, используя ключевое слово layout и предоставив конструктор от dict до go.Figure().

import plotly.graph_objects as go
fig = go.Figure(
    data=[go.Bar(y=[2, 1, 3])],
    layout_title_text="A Figure Displaying Itself", 
    layout = {'xaxis': {'title': 'x-label', 
                        'visible': True, 
                        'showticklabels': True}, 
              'yaxis': {'title': 'y-label', 
                        'visible': False, 
                        'showticklabels': False}
              }
)
fig

enter image description here

Интересная особенность Plotly: Скрытая стенография

Оказывается, что Plotly имеет удобную сокращенную нотацию, позволяющую dict-flattening , доступную для входных аргументов, таких как этот:

## ALL THREE METHODS BELOW ARE EQUIVALENT

# No dict-flattening
# layout = dict with yaxis as key
layout = {'yaxis': {'title': 'y-label', 
                    'visible': False, 
                    'showticklabels': False}
}

# Partial dict-flattening
# layout_yaxis = dict with key-names 
#     title, visible, showticklabels
layout_yaxis = {'title': 'y-label', 
                'visible': False, 
                'showticklabels': False}

# Complete dict-flattening
# layout_yaxis_key-name for each of the key-names
layout_yaxis_title = 'y-label'
layout_yaxis_visible = False
layout_yaxis_showticklabels = False

Теперь попробуйте запустить все три из следующих и сравните выходные данные.

import plotly.graph_objects as go

# Method-1: Shortest (less detailed)
fig = go.Figure(
    data=[go.Bar(y=[2, 1, 3])],
    layout_title_text="A Figure Displaying Itself", 
    layout_yaxis_visible = False, 
    layout_xaxis_title = 'x-label'
)
fig.show()

# Method-2: A hibrid of dicts and underscore-separated-syntax
fig = go.Figure(
    data=[go.Bar(y=[2, 1, 3])],
    layout_title_text="A Figure Displaying Itself", 
    layout_xaxis_title = 'x-label', 
    layout_yaxis = {'title': 'y-label', 
                        'visible': False, 
                        'showticklabels': False}
)
fig.show()

# Method-3: A complete dict syntax
fig = go.Figure(
    data=[go.Bar(y=[2, 1, 3])],
    layout_title_text="A Figure Displaying Itself", 
    layout = {'xaxis': {'title': 'x-label', 
                        'visible': True, 
                        'showticklabels': True}, 
              'yaxis': {'title': 'y-label', 
                        'visible': False, 
                        'showticklabels': False}
              }
)
fig.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...