Альтаир: столбцы на гистограммах выравниваются по-разному в зависимости от направления оси.Python

Программы на Python
Ответить
Anonymous
 Альтаир: столбцы на гистограммах выравниваются по-разному в зависимости от направления оси.

Сообщение Anonymous »

Я пытаюсь разместить две горизонтальные гистограммы рядом, каждая из которых движется в противоположном направлении, как в этом примере. Однако, как можно видеть в примере и в тестовом примере ниже, горизонтальные полосы кажутся смещенными на 1 пиксель влево от сетки, независимо от того, в каком направлении они двигаются. Это приводит к неудовлетворительной асимметричной визуализации, в которой столбцы, идущие влево, не совпадают с ориентированной вправо осью Y, на которой они расположены, а столбцы, идущие вправо, перекрывают ось, ориентированную влево, на которой они расположены.
import pandas as pd
import altair as alt

data = pd.DataFrame(data={
'A': ['Item 1','Item 2','Item 3'],
'B': [1,2,3],
})

left = alt.Chart(data).mark_bar().encode(
alt.Y('A:N').axis(orient='right'),
alt.X('B:Q').scale(reverse=True),
).properties(title='Bars do not overlap right-oriented y-axis')

right = alt.Chart(data).mark_bar().encode(
alt.Y('A:N').axis(offset=1),
alt.X('B:Q').axis(tickOffset=-1, gridDashOffset=10),
).properties(title='Bars do overlap left-oriented y-axis')

left | right


введите здесь описание изображения
Я ожидаю, что левая и правая диаграммы будут симметричными. Если есть веская причина для такой разницы в выравнивании полос, я бы хотел сместить полосы в правом примере на один пиксель вправо относительно сетки, чтобы они не перекрывали ось Y.
Я попытался добиться этого эффекта, изменив смещение оси Y на правом графике, как показано ниже. Однако это приводит к зазору в 1 пиксель между нулевой точкой оси X, ограничивающей рамкой и сеткой. Попытка исправить это умножает проблемы со смещением. Я просто хочу сместить столбцы на один пиксель вправо, оставив остальные оси неизменными.
alt.Chart(data).mark_bar().encode(
alt.Y('A:N').axis(offset=1),
alt.X('B:Q'),
)


Подробнее здесь: https://stackoverflow.com/questions/791 ... -direction
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»