Update hatch.py - #27337
Conversation
|
As it stands, the implementation here is identical to that for the vertical lines, so we have import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.fill_between([0, 1], [0, 1], hatch="_")
plt.show()I believe the reason the tests fail is because we now have two vertical lines on top of each other for the "+" hatching. E.g here are the result and diff images for the failing legend test: @Arikad0 do you have thoughts on how to actually create the dashed pattern? |
|
I'm a bit lost on how to proceed on this issue. Do you have any idea that may help? Thanks in advance |
|
Gentle ping - any reviewers available to take a look? Thanks! |
|
I wondered if we could use the Defining the class as class Dashes(Shapes):
size = 0.35
def __init__(self, hatch, density):
self.num_rows = (hatch.count('_')) * density
path = Path([[0, 0], [1, 0]], [Path.MOVETO, Path.LINETO])
self.shape_vertices = path.vertices
self.shape_codes = path.codes
super().__init__(hatch, density)and adapting the example from #27146 import matplotlib.pyplot as plt
import numpy as np
# Data
cols = 10
rows = 4
data = (
np.reshape(np.arange(0, cols, 1), (1, -1)) ** 2
+ np.reshape(np.arange(0, rows), (-1, 1))
+ np.random.random((rows, cols))*5
)
# Plot
fig, ax = plt.subplots()
x = range(data.shape[1])
ax.stackplot(
x, data,
hatch=["_", "__", "___", "____"]
)
ax.set_xlim(0, 9)
ax.set_ylim(0, 350)
plt.show()Possibly there are better ways. |
|
Is there any way to bypass the def _validate_hatch_pattern(hatch):
valid_hatch_patterns = set(r'_-+|/\xXoO.*') # Adding '_' Dashed patternAfter implementing above and menetioning it in
|
|
Did you search for that warning in the source code? |
Thanks, it is working after a restart. |





Dashed Hatch added / #27170