Как добавить смещение оси в сюжете matplotlib?

Я рисую несколько точек в морском заливе на одном графике. Ось X является порядковой, а не числовой; порядковые значения одинаковы для каждого точечного графика. Я хотел бы сместить каждый график немного в сторону, параметр wayplot (dodge = ...) делает это в пределах нескольких линий в одном графике, но в этом случае для нескольких различных графиков, нарисованных поверх друг друга. Как я могу это сделать?

В идеале, я бы хотел использовать технику, которая подходит для любого сюжета matplotlib, а не только для морского побережья. Добавление смещения к данным не будет легким, поскольку данные не являются числовыми.

Пример, показывающий наложение графиков и затрудняющее их чтение (уклонение внутри каждого графика работает нормально)

import pandas as pd
import seaborn as sns

df1 = pd.DataFrame({'x':list('ffffssss'), 'y':[1,2,3,4,5,6,7,8], 'h':list('abababab')})
df2 = df1.copy()
df2['y'] = df2['y']+0.5
sns.pointplot(data=df1, x='x', y='y', hue='h', ci='sd', errwidth=2, capsize=0.05, dodge=0.1, markers='<')
sns.pointplot(data=df2, x='x', y='y', hue='h', ci='sd', errwidth=2, capsize=0.05, dodge=0.1, markers='>')

 Result

Я мог бы использовать что-то кроме seaborn, но автоматические индикаторы доверия /ошибок очень удобны, поэтому я бы предпочел придерживаться здесь seaborn.

4 голоса | спросил Alex I 6 Mayam18 2018, 06:27:22

1 ответ


0
Отвечая на это для самого общего случая в первую очередь.Уловка может быть реализована путем смещения художников на фигуре на некоторое количество.Может быть полезно использовать точки в качестве единиц этого сдвига.Например, вы можете захотеть сместить маркеры на графике на 5 баллов.Этот сдвиг может быть достигнут путем добавления перевода в преобразование данных исполнителя.Здесь я предлагаю ---- +: = 0 =: + ---- .Теперь, чтобы сохранить это в общих чертах, можно написать функцию, которая принимает метод построения графика, оси и данные в качестве входных данных, и, кроме того, некоторые уклонения для применения, напримерПолный функциональный код:введите описание изображения здесьВы можете использовать это с ---- +: = 3 =: + ---- , ---- +: = 4 =: + ---- и т. Д. Однако не с любой из функций seaborn, потому что они неНе верните ни одного полезного художника для работы.Теперь для рассматриваемого случая остающаяся проблема состоит в том, чтобы получить данные в полезном формате.Одним из вариантов будет следующий.введите описание изображения здесь
ответил ImportanceOfBeingErnest 9 Mayam18 2018, 03:16:53

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132