MatPlotLib переопределяет значения x, когда некоторые, но не все входные функции не определены для первого значения - PullRequest
0 голосов
/ 04 марта 2020

Я использую seaborn и matplotlib для визуализации данных из pandas DataFrame в формате long / tidy.

Я использую объект seaborn facetgrid для генерации матрицы графиков, и каждый из этих графиков имеет несколько функций.

Однако для некоторых функций первое значение не определено, поэтому они начинаются со 2-го такта, но когда я строю функции, начинающиеся с первого значения x, и функции, начинающиеся со 2-го значения x в том же графике, первое значение x находится на оси x в несколько случайной позиции.

Трудно объяснить, вот пример: https://labor.viesca.de/Addition.svg

Соответствующий код:

from seaborn import FacetGrid
from matplotlib.pyplot import suptitle, subplots_adjust, plot
...
facet = FacetGrid(filtered_data_addition, row="decimal_max_value", col="characteristic", hue="toolkit_design", margin_titles=True, row_order=decimal_max_values, col_order=characteristics, sharey="col")
facet.map(plot, "decimal_max_error", "value", marker='.', linestyle='dashed')
facet.set_xticklabels(rotation=90)
facet.add_legend()
facet.set_ylabels("")
subplots_adjust(top=0.95)
suptitle("Addition " + argv[2])
facet.savefig("Addition.svg")

Значения x являются не числами с плавающей точкой, а строками, которые являются преднамеренными. В отличие от морского барплота или стрипплота, функция plot не имеет аргумента «порядка» для явного указания не алфавитного порядка. Однако стрипплот не соединяет точки линиями, чего я и хочу.

...