-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Update hatch.py #27337
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update hatch.py #27337
Conversation
Hi @Arikad0 - can you address the current check failures? (check out above the Linting, Mypy and Tests failures) Also, if this PR closes the issue you mentioned in the description, you can use one of the magic phrases such as "Closes #" so that GitHub understands to link the issue and PR. Thanks! |
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 pattern After implementing above and menetioning it in
|
Did you search for that warning in the source code? |
Thanks, it is working after a restart. |
I am going to close this in favour of #28072. |
Dashed Hatch added / #27170