Open
Description
This was one of the bugs pointed out in #87. I'll modify #87 to also solve this issue.
Description:
The points composing the crossbars are not plotted in order, causing lines to be drawn back and forth. This is visible when setting a non-contigous linestyle
or when the color is not fully opaque.
Current behavior:
Expected behavior:
To Reproduce:
Run the following script with PYTHONHASHSEED=3 python issue89.py
(since we use sets to represent the crossbars, the order of points is dependent on the internal seed for the Python hashing).
# filename: issue89.py
import numpy as np
import matplotlib.pyplot as plt
from pandas import DataFrame, Series
from scikit_posthocs import critical_difference_diagram
n = 10
rng = np.random.default_rng(0)
index = np.arange(n).astype(str)
ranks = Series(rng.uniform(size=n), index=index)
sig_matrix = DataFrame(1, index=index, columns=index)
plt.figure(figsize=(5, 2))
output = critical_difference_diagram(
ranks,
sig_matrix,
crossbar_props={"marker": "o", "linestyle": ":", "alpha": 0.5, "linewidth": 5},
)
plt.tight_layout()
plt.savefig("issue89.png")
for level in output["crossbars"]:
for bar in level:
bar.set_xdata(sorted(bar.get_xdata()))
plt.savefig("issue89_solved.png")
System and package information (please complete the following information):
- OS: Windows 11, x86_64
- Package version: (e.g. 0.11.4)