From 7a203e42a77c10c30b9c4368fce75d9435141174 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Mon, 6 Jun 2016 22:56:37 -0400 Subject: [PATCH 1/2] API: change the dot patterns - change the dotted pattern to [[1.1, 1.1]] - change scale floor to a lw of 2.0 --- lib/matplotlib/lines.py | 2 +- lib/matplotlib/rcsetup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/matplotlib/lines.py b/lib/matplotlib/lines.py index df4b27cdef18..e25f689eedbc 100644 --- a/lib/matplotlib/lines.py +++ b/lib/matplotlib/lines.py @@ -68,7 +68,7 @@ def _get_dash_pattern(style): def _scale_dashes(offset, dashes, lw): if rcParams['_internal.classic_mode']: return offset, dashes - scale = max(1.0, lw) + scale = max(2.0, lw) scaled_offset = scaled_dashes = None if offset is not None: scaled_offset = offset * scale diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index 8d2f642351e0..97413692496f 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -901,7 +901,7 @@ def validate_hist_bins(s): 'lines.solid_capstyle': ['projecting', validate_capstyle], 'lines.dashed_pattern': [[2.8, 1.2], validate_nseq_float()], 'lines.dashdot_pattern': [[4.8, 1.2, 0.8, 1.2], validate_nseq_float()], - 'lines.dotted_pattern': [[1.2, 0.6], validate_nseq_float()], + 'lines.dotted_pattern': [[1.1, 1.1], validate_nseq_float()], # marker props 'markers.fillstyle': ['full', validate_fillstyle], From 13b8c913aa1ea80621ce067b52e1432d40150510 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Fri, 15 Jul 2016 21:56:47 -0500 Subject: [PATCH 2/2] TST: add test for lw scaling of dash patterns --- .../test_lines/scaled_lines.pdf | Bin 0 -> 10384 bytes .../test_lines/scaled_lines.png | Bin 0 -> 26768 bytes .../test_lines/scaled_lines.svg | 1989 +++++++++++++++++ lib/matplotlib/tests/test_lines.py | 17 +- 4 files changed, 2004 insertions(+), 2 deletions(-) create mode 100644 lib/matplotlib/tests/baseline_images/test_lines/scaled_lines.pdf create mode 100644 lib/matplotlib/tests/baseline_images/test_lines/scaled_lines.png create mode 100644 lib/matplotlib/tests/baseline_images/test_lines/scaled_lines.svg diff --git a/lib/matplotlib/tests/baseline_images/test_lines/scaled_lines.pdf b/lib/matplotlib/tests/baseline_images/test_lines/scaled_lines.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c82443381bea4a68ede8e3c20751a4bc64e1c202 GIT binary patch literal 10384 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 D%pbq7 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_lines/scaled_lines.png b/lib/matplotlib/tests/baseline_images/test_lines/scaled_lines.png new file mode 100644 index 0000000000000000000000000000000000000000..f75601b677176ba4b1a62520e65c8305fc82b9c2 GIT binary patch literal 26768 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

+0lY*8V90=!-YX~i`j7RI*i76(7fel6 zHPrU7=)>C=^dvU@nF*d575XA>(tt=%IAS-vopkvDh={%dA>>C0R_8Xd!4Q^Mwe!r( zM!26^#Ut+u3%l>-Z*wpU8@H4^sw@Wz9fzqJnvIQ(P2t2_mjUj;-M#YBv9`c@049BM ze3%Ll{T4^RR=iKJT@^M1P%2j15JLk4DhP|X_1USrB28;c6m^Ky{(ep3piI^`ymzvCpcWfn>Ue9dQylZ?qhyFdGSN|XMoQK zR_&|Qj!4QbNqN(GCMGbjE`o(br1^jc4;qR`Of12%GrF9)oKjn`VaK({`HeEwuvDF4 zrFHCt8wj0&xOj#0tRf&1d{zkC7IlE_IZk})aPR>i2{^m0%;IpiurW{00uD z1bB0RD|qx_ps5lKIPq3=TV5hQr)xi`DEWcGh(t?$pO}aQjK;jiMh>ok18!v%6>y#L zkIa|d>_i~MN$jzF|8AP-DPkZEEGgygXw3=G!=FJ93!Fai+&z15ph#*@)k!L)d4YYRr&@40sOzoL$Q5LD9(fM+dtThfqD?QH@J z4G_lA0ukBjs$Gd;^=VK~)B&V3(l>*%~lPiF&jS^jYG z^?0+t959C5p)Gern#h1T01eSlw}^P#RB!9x(4OJk90?Yy&rc=hPY!ns0IL$nU_>1! zC8SeNMh%<&WEGE=FRlZOD_FDzE?>T(u1>wWy80OP$K0KPJbvk`5|C<1u~gyfIm=OvP!Bmc~*kCE+@+ z>N?*}?ZteY@}NjJarcwsloWTU-&9PKZ-V=C24y016PS!pU|1nU6Ef=X2FafzQU#13q zwJH3ntFWY`9guJtn3==7yKj3jcjcA$8N7CXUQ}GH^5h90Xa}*!-Sl5*p$_5*>3=+- zKY09qjSc-zHr)S`^ZI8^{3k~AFV5Hh;+5YJDEDUXdpgkUc0<6Q`b|yMQf2cO{|B{r B%HjY3 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_lines/scaled_lines.svg b/lib/matplotlib/tests/baseline_images/test_lines/scaled_lines.svg new file mode 100644 index 000000000000..c77f9edd7b51 --- /dev/null +++ b/lib/matplotlib/tests/baseline_images/test_lines/scaled_lines.svg @@ -0,0 +1,1989 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/matplotlib/tests/test_lines.py b/lib/matplotlib/tests/test_lines.py index 084a97b681fd..db0c839cd5ff 100644 --- a/lib/matplotlib/tests/test_lines.py +++ b/lib/matplotlib/tests/test_lines.py @@ -11,9 +11,12 @@ from nose.tools import assert_true, assert_raises from timeit import repeat import numpy as np +from cycler import cycler +import matplotlib import matplotlib.pyplot as plt from matplotlib.testing.decorators import cleanup, image_comparison + import sys @@ -178,13 +181,23 @@ def test_marker_fill_styles(): ax.set_xlim([-5, 135]) +@image_comparison(baseline_images=['scaled_lines'], style='default') +def test_lw_scaling(): + th = np.linspace(0, 32) + fig, ax = plt.subplots() + lins_styles = ['dashed', 'dotted', 'dashdot'] + cy = cycler(matplotlib.rcParams['axes.prop_cycle']) + for j, (ls, sty) in enumerate(zip(lins_styles, cy)): + for lw in np.linspace(.5, 10, 10): + ax.plot(th, j*np.ones(50) + .1 * lw, linestyle=ls, lw=lw, **sty) + + def test_nan_is_sorted(): - line = mlines.Line2D([],[]) + line = mlines.Line2D([], []) assert_true(line._is_sorted(np.array([1, 2, 3]))) assert_true(line._is_sorted(np.array([1, np.nan, 3]))) assert_true(not line._is_sorted([3, 5] + [np.nan] * 100 + [0, 2])) - if __name__ == '__main__': nose.runmodule(argv=['-s', '--with-doctest'], exit=False) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy