From 153cd53d30c0555d79847fbbe6bceb8ccc4c3de3 Mon Sep 17 00:00:00 2001 From: Jerry Lui Date: Wed, 28 Mar 2018 23:19:04 -0400 Subject: [PATCH 1/7] Changed pie charts default shape to circle (instead of oval), and added tests --- lib/matplotlib/axes/_axes.py | 3 ++- .../baseline_images/test_axes/pie_default.png | Bin 0 -> 51529 bytes lib/matplotlib/tests/test_axes.py | 23 ++++++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 lib/matplotlib/tests/baseline_images/test_axes/pie_default.png diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index d476deb356fd..36103bdaed8f 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -2670,8 +2670,9 @@ def pie(self, x, explode=None, labels=None, colors=None, Notes ----- The pie chart will probably look best if the figure and axes are - square, or the Axes aspect is equal. + square, or the Axes aspect is equal, this is the default setting. """ + self.set_aspect('equal') x = np.array(x, np.float32) sx = x.sum() diff --git a/lib/matplotlib/tests/baseline_images/test_axes/pie_default.png b/lib/matplotlib/tests/baseline_images/test_axes/pie_default.png new file mode 100644 index 0000000000000000000000000000000000000000..1c0c6c2c0577281d569af441f2d2048e8956554e GIT binary patch literal 51529 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

Lmhz!!tN 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 YpRtB<<=hjU;LspRiOY! Date: Thu, 29 Mar 2018 00:18:52 -0400 Subject: [PATCH 2/7] Updated comments for default circular pie chart --- lib/matplotlib/axes/_axes.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index 36103bdaed8f..2698302ffc0f 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -2670,9 +2670,11 @@ def pie(self, x, explode=None, labels=None, colors=None, Notes ----- The pie chart will probably look best if the figure and axes are - square, or the Axes aspect is equal, this is the default setting. + square, or the Axes aspect is equal. """ + # This method sets the aspect ratio of the axis to "equal". self.set_aspect('equal') + x = np.array(x, np.float32) sx = x.sum() From 464bdddad0e4b075619b7bb5f175808c5d86baa3 Mon Sep 17 00:00:00 2001 From: jerrylui803 Date: Thu, 29 Mar 2018 08:18:35 -0400 Subject: [PATCH 3/7] fix pep8 --- lib/matplotlib/axes/_axes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index 2698302ffc0f..9e6f43b9ad5d 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -2674,7 +2674,7 @@ def pie(self, x, explode=None, labels=None, colors=None, """ # This method sets the aspect ratio of the axis to "equal". self.set_aspect('equal') - + x = np.array(x, np.float32) sx = x.sum() From c6c29f1d45ad30112c948a8ebc6d5dcd4703109e Mon Sep 17 00:00:00 2001 From: Jerry Lui Date: Thu, 29 Mar 2018 11:58:23 -0400 Subject: [PATCH 4/7] removed unneccessary test case and updated docstring --- lib/matplotlib/axes/_axes.py | 3 +-- lib/matplotlib/tests/test_axes.py | 13 +------------ 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index 9e6f43b9ad5d..7826ee8ae2b0 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -2671,10 +2671,9 @@ def pie(self, x, explode=None, labels=None, colors=None, ----- The pie chart will probably look best if the figure and axes are square, or the Axes aspect is equal. + This method sets the aspect ratio of the axis to "equal". """ - # This method sets the aspect ratio of the axis to "equal". self.set_aspect('equal') - x = np.array(x, np.float32) sx = x.sum() diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py index 86918b2147c3..84dc5be19971 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py @@ -4541,7 +4541,7 @@ def test_text_labelsize(): @image_comparison(baseline_images=['pie_default'], extensions=['png']) -def test_pie_default_1(): +def test_pie_default(): # The slices will be ordered and plotted counter-clockwise. labels = 'Frogs', 'Hogs', 'Dogs', 'Logs' sizes = [15, 30, 45, 10] @@ -4552,17 +4552,6 @@ def test_pie_default_1(): autopct='%1.1f%%', shadow=True, startangle=90) -@image_comparison(baseline_images=['pie_default'], extensions=['png']) -def test_pie_default_2(): - # The slices will be ordered and plotted counter-clockwise. - labels = 'Frogs', 'Hogs', 'Dogs', 'Logs' - sizes = [15, 30, 45, 10] - colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral'] - explode = (0, 0.1, 0, 0) # only "explode" the 2nd slice (i.e. 'Hogs')z - plt.pie(sizes, explode=explode, labels=labels, colors=colors, - autopct='%1.1f%%', shadow=True, startangle=90) - - @image_comparison(baseline_images=['pie_linewidth_0', 'pie_linewidth_0', 'pie_linewidth_0'], extensions=['png']) From b47066ea4bcf8f931e5ebdfb57a154ce8b198636 Mon Sep 17 00:00:00 2001 From: Jerry Lui Date: Thu, 29 Mar 2018 18:20:32 -0400 Subject: [PATCH 5/7] added what's new entry and edited docstring for pie --- doc/users/next_whats_new/pie_chart_default.rst | 8 ++++++++ lib/matplotlib/axes/_axes.py | 1 + 2 files changed, 9 insertions(+) create mode 100644 doc/users/next_whats_new/pie_chart_default.rst diff --git a/doc/users/next_whats_new/pie_chart_default.rst b/doc/users/next_whats_new/pie_chart_default.rst new file mode 100644 index 000000000000..2b7c7b9c59cd --- /dev/null +++ b/doc/users/next_whats_new/pie_chart_default.rst @@ -0,0 +1,8 @@ +Pie charts are now circular by default +-------------------------------------- +We acknowledge that the majority of people do not like egg-shaped pies. +Therefore, an axes to which a pie chart is plotted will be set to have +equal aspect ratio by default. This ensures that the pie appears circular +independent on the axes size or units. To revert to the previous behaviour +you may set the axes' aspect to automatic, ax.set_aspect("auto") or +plt.axis("auto"). \ No newline at end of file diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index 7826ee8ae2b0..15c1b22d80f6 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -2672,6 +2672,7 @@ def pie(self, x, explode=None, labels=None, colors=None, The pie chart will probably look best if the figure and axes are square, or the Axes aspect is equal. This method sets the aspect ratio of the axis to "equal". + The axes aspect ratio can be controlled with `.Axes.set_aspect`. """ self.set_aspect('equal') x = np.array(x, np.float32) From b1c4398627c0b24ecb545d92ebd21ca9d1e16af6 Mon Sep 17 00:00:00 2001 From: Jerry Lui Date: Thu, 29 Mar 2018 18:40:03 -0400 Subject: [PATCH 6/7] fix pep8 --- lib/matplotlib/axes/_axes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index 15c1b22d80f6..ab7a82c187a9 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -2672,7 +2672,7 @@ def pie(self, x, explode=None, labels=None, colors=None, The pie chart will probably look best if the figure and axes are square, or the Axes aspect is equal. This method sets the aspect ratio of the axis to "equal". - The axes aspect ratio can be controlled with `.Axes.set_aspect`. + The axes aspect ratio can be controlled with `.Axes.set_aspect`. """ self.set_aspect('equal') x = np.array(x, np.float32) From 2f1be5b21963bbc5352a275dc530c528f1c7890b Mon Sep 17 00:00:00 2001 From: jerrylui803 Date: Thu, 29 Mar 2018 22:29:37 -0400 Subject: [PATCH 7/7] fixed typo --- lib/matplotlib/axes/_axes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index ab7a82c187a9..2af954208a3c 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -2672,7 +2672,7 @@ def pie(self, x, explode=None, labels=None, colors=None, The pie chart will probably look best if the figure and axes are square, or the Axes aspect is equal. This method sets the aspect ratio of the axis to "equal". - The axes aspect ratio can be controlled with `.Axes.set_aspect`. + The axes aspect ratio can be controlled with `Axes.set_aspect`. """ self.set_aspect('equal') x = np.array(x, np.float32)