Python Matplotlib - Filling Area Between Two Concentric Circles












1














I'm drawing the following plot using Matplotlib:



import matplotlib.pyplot as mlp
import numpy.linalg as npl

def ploteig(self, erg:bool) -> None:

theta = np.arange(start=0, stop=2.0*np.pi, step=0.01)
r = np.ones(len(theta))

values, _ = npl.eig(self._p)
values = values.astype(complex)

x_unit_circle = r * np.cos(theta)
y_unit_circle = r * np.sin(theta)

x_eigenvalues = np.unique(np.append(values, np.complex(1.0)))
y_eigenvalues = np.zeros(len(x_eigenvalues))

has_slem = False

if erg:
values_abs = np.sort(np.abs(values))
values_ct1 = np.isclose(values_abs, 1.0)
if not np.all(values_ct1):
mu = values_abs[~values_ct1][-1]
if not np.isclose(mu, 0.0):
r *= mu;
x_slem_circle = r * np.cos(theta)
y_slem_circle = r * np.sin(theta)
has_slem = True

fig, ax = mlp.subplots()
ax.plot(x_unit_circle, y_unit_circle, color='red', linestyle='-', linewidth=3)
ax.plot(x_eigenvalues, y_eigenvalues, color='blue', linestyle='None', marker='*', markersize=10)

if has_slem:
ax.plot(x_slem_circle, y_slem_circle, color='red', linestyle='--', linewidth=1)

ax.grid(True)
ax.set_aspect('equal', 'datalim')

mlp.show()


When has_slem is True, then the slem circle is always smaller than the unit circle, hence the plot produces two concentric circles where the outer circle is given by (x_unit_circle,y_unit_circle) and the inner circle is given by (x_slem_circle,y_slem_circle).



What I would like to do is to fill the area between the two circles with a light red color. This is what I tried so far:



if has_slem:
ax.plot(x_slem_circle, y_slem_circle, color='red', linestyle='--', linewidth=1)
ax.fill_between(x_unit_circle, y_unit_circle, -y_unit_circle, color="red", alpha=0.2)
ax.fill_between(x_slem_circle, y_slem_circle, -y_slem_circle, color="white")


But this approach has two problems:




  1. If the axes color is changed, the second fill_between call would produce a wrong fill based on white color.

  2. The filled area looks a little bit misaligned with respect to the inner circle (there is a small white gap), as you can see on the screenshot below.


Plot



So, here comes my question: is there a better and more precise approach for filling the area between the two circles that allows me to bypass both problems?



On a totally unrelated note: is it ok to call mlp.show() inside the function? I don't know what are the best practices here... maybe it's better to return the figure handle and let the consumer decide when to pop it up?










share|improve this question





























    1














    I'm drawing the following plot using Matplotlib:



    import matplotlib.pyplot as mlp
    import numpy.linalg as npl

    def ploteig(self, erg:bool) -> None:

    theta = np.arange(start=0, stop=2.0*np.pi, step=0.01)
    r = np.ones(len(theta))

    values, _ = npl.eig(self._p)
    values = values.astype(complex)

    x_unit_circle = r * np.cos(theta)
    y_unit_circle = r * np.sin(theta)

    x_eigenvalues = np.unique(np.append(values, np.complex(1.0)))
    y_eigenvalues = np.zeros(len(x_eigenvalues))

    has_slem = False

    if erg:
    values_abs = np.sort(np.abs(values))
    values_ct1 = np.isclose(values_abs, 1.0)
    if not np.all(values_ct1):
    mu = values_abs[~values_ct1][-1]
    if not np.isclose(mu, 0.0):
    r *= mu;
    x_slem_circle = r * np.cos(theta)
    y_slem_circle = r * np.sin(theta)
    has_slem = True

    fig, ax = mlp.subplots()
    ax.plot(x_unit_circle, y_unit_circle, color='red', linestyle='-', linewidth=3)
    ax.plot(x_eigenvalues, y_eigenvalues, color='blue', linestyle='None', marker='*', markersize=10)

    if has_slem:
    ax.plot(x_slem_circle, y_slem_circle, color='red', linestyle='--', linewidth=1)

    ax.grid(True)
    ax.set_aspect('equal', 'datalim')

    mlp.show()


    When has_slem is True, then the slem circle is always smaller than the unit circle, hence the plot produces two concentric circles where the outer circle is given by (x_unit_circle,y_unit_circle) and the inner circle is given by (x_slem_circle,y_slem_circle).



    What I would like to do is to fill the area between the two circles with a light red color. This is what I tried so far:



    if has_slem:
    ax.plot(x_slem_circle, y_slem_circle, color='red', linestyle='--', linewidth=1)
    ax.fill_between(x_unit_circle, y_unit_circle, -y_unit_circle, color="red", alpha=0.2)
    ax.fill_between(x_slem_circle, y_slem_circle, -y_slem_circle, color="white")


    But this approach has two problems:




    1. If the axes color is changed, the second fill_between call would produce a wrong fill based on white color.

    2. The filled area looks a little bit misaligned with respect to the inner circle (there is a small white gap), as you can see on the screenshot below.


    Plot



    So, here comes my question: is there a better and more precise approach for filling the area between the two circles that allows me to bypass both problems?



    On a totally unrelated note: is it ok to call mlp.show() inside the function? I don't know what are the best practices here... maybe it's better to return the figure handle and let the consumer decide when to pop it up?










    share|improve this question



























      1












      1








      1


      1





      I'm drawing the following plot using Matplotlib:



      import matplotlib.pyplot as mlp
      import numpy.linalg as npl

      def ploteig(self, erg:bool) -> None:

      theta = np.arange(start=0, stop=2.0*np.pi, step=0.01)
      r = np.ones(len(theta))

      values, _ = npl.eig(self._p)
      values = values.astype(complex)

      x_unit_circle = r * np.cos(theta)
      y_unit_circle = r * np.sin(theta)

      x_eigenvalues = np.unique(np.append(values, np.complex(1.0)))
      y_eigenvalues = np.zeros(len(x_eigenvalues))

      has_slem = False

      if erg:
      values_abs = np.sort(np.abs(values))
      values_ct1 = np.isclose(values_abs, 1.0)
      if not np.all(values_ct1):
      mu = values_abs[~values_ct1][-1]
      if not np.isclose(mu, 0.0):
      r *= mu;
      x_slem_circle = r * np.cos(theta)
      y_slem_circle = r * np.sin(theta)
      has_slem = True

      fig, ax = mlp.subplots()
      ax.plot(x_unit_circle, y_unit_circle, color='red', linestyle='-', linewidth=3)
      ax.plot(x_eigenvalues, y_eigenvalues, color='blue', linestyle='None', marker='*', markersize=10)

      if has_slem:
      ax.plot(x_slem_circle, y_slem_circle, color='red', linestyle='--', linewidth=1)

      ax.grid(True)
      ax.set_aspect('equal', 'datalim')

      mlp.show()


      When has_slem is True, then the slem circle is always smaller than the unit circle, hence the plot produces two concentric circles where the outer circle is given by (x_unit_circle,y_unit_circle) and the inner circle is given by (x_slem_circle,y_slem_circle).



      What I would like to do is to fill the area between the two circles with a light red color. This is what I tried so far:



      if has_slem:
      ax.plot(x_slem_circle, y_slem_circle, color='red', linestyle='--', linewidth=1)
      ax.fill_between(x_unit_circle, y_unit_circle, -y_unit_circle, color="red", alpha=0.2)
      ax.fill_between(x_slem_circle, y_slem_circle, -y_slem_circle, color="white")


      But this approach has two problems:




      1. If the axes color is changed, the second fill_between call would produce a wrong fill based on white color.

      2. The filled area looks a little bit misaligned with respect to the inner circle (there is a small white gap), as you can see on the screenshot below.


      Plot



      So, here comes my question: is there a better and more precise approach for filling the area between the two circles that allows me to bypass both problems?



      On a totally unrelated note: is it ok to call mlp.show() inside the function? I don't know what are the best practices here... maybe it's better to return the figure handle and let the consumer decide when to pop it up?










      share|improve this question















      I'm drawing the following plot using Matplotlib:



      import matplotlib.pyplot as mlp
      import numpy.linalg as npl

      def ploteig(self, erg:bool) -> None:

      theta = np.arange(start=0, stop=2.0*np.pi, step=0.01)
      r = np.ones(len(theta))

      values, _ = npl.eig(self._p)
      values = values.astype(complex)

      x_unit_circle = r * np.cos(theta)
      y_unit_circle = r * np.sin(theta)

      x_eigenvalues = np.unique(np.append(values, np.complex(1.0)))
      y_eigenvalues = np.zeros(len(x_eigenvalues))

      has_slem = False

      if erg:
      values_abs = np.sort(np.abs(values))
      values_ct1 = np.isclose(values_abs, 1.0)
      if not np.all(values_ct1):
      mu = values_abs[~values_ct1][-1]
      if not np.isclose(mu, 0.0):
      r *= mu;
      x_slem_circle = r * np.cos(theta)
      y_slem_circle = r * np.sin(theta)
      has_slem = True

      fig, ax = mlp.subplots()
      ax.plot(x_unit_circle, y_unit_circle, color='red', linestyle='-', linewidth=3)
      ax.plot(x_eigenvalues, y_eigenvalues, color='blue', linestyle='None', marker='*', markersize=10)

      if has_slem:
      ax.plot(x_slem_circle, y_slem_circle, color='red', linestyle='--', linewidth=1)

      ax.grid(True)
      ax.set_aspect('equal', 'datalim')

      mlp.show()


      When has_slem is True, then the slem circle is always smaller than the unit circle, hence the plot produces two concentric circles where the outer circle is given by (x_unit_circle,y_unit_circle) and the inner circle is given by (x_slem_circle,y_slem_circle).



      What I would like to do is to fill the area between the two circles with a light red color. This is what I tried so far:



      if has_slem:
      ax.plot(x_slem_circle, y_slem_circle, color='red', linestyle='--', linewidth=1)
      ax.fill_between(x_unit_circle, y_unit_circle, -y_unit_circle, color="red", alpha=0.2)
      ax.fill_between(x_slem_circle, y_slem_circle, -y_slem_circle, color="white")


      But this approach has two problems:




      1. If the axes color is changed, the second fill_between call would produce a wrong fill based on white color.

      2. The filled area looks a little bit misaligned with respect to the inner circle (there is a small white gap), as you can see on the screenshot below.


      Plot



      So, here comes my question: is there a better and more precise approach for filling the area between the two circles that allows me to bypass both problems?



      On a totally unrelated note: is it ok to call mlp.show() inside the function? I don't know what are the best practices here... maybe it's better to return the figure handle and let the consumer decide when to pop it up?







      python python-3.x matplotlib plot fill






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Dec 30 '18 at 2:50

























      asked Dec 27 '18 at 16:22









      Tommaso Belluzzo

      17.4k64978




      17.4k64978
























          1 Answer
          1






          active

          oldest

          votes


















          1














          pyplot.contourf is what you are looking for. Something that can go like this:



          # inner radius
          inner = 0.5

          # the two circles
          thetas = np.linspace(0,2*np.pi, 200)
          # you don't need r = np.one(len(thetas))
          x_unit_circle = np.cos(thetas)
          y_unit_circle = np.sin(thetas)

          x_eigens = x_unit_circle * inner
          y_eigens = y_unit_circle * inner

          xs = np.linspace(-1.1,1.1, 201)
          ys = np.linspace(-1.1,1.1, 201)

          # mesh for contours
          xv,yv = np.meshgrid(xs,ys)

          # generate the level map
          r = xv**2 + yv**2

          pyplot.figure(figsize=(8,8))

          # plot the contours with two levels only
          # notice the xv, yv parameters
          pyplot.contourf(xv, yv, r, levels=[inner**2,1], colors=('r','g','b'))

          # plot the two circles
          pyplot.plot(x_unit_circle, y_unit_circle, color='b', linewidth=3)
          pyplot.plot(x_eigens, y_eigens, color='g', linewidth=3, linestyle='--')

          pyplot.show()


          and result in different background:
          enter image description here






          share|improve this answer























          • Thanks for your answer. I tried your code with no changes and I can't reproduce your result. The contour plot is very big and doesn't match the scale of the concentric circles. Here is what I get instead: i.imgur.com/1U1jeFr.png (you may notice the two circles on the bottom left corner).
            – Tommaso Belluzzo
            Dec 27 '18 at 21:45










          • @TommasoBelluzzo sorry, I forgot to include the xv, yv in contourf. Without these, contourf would take the indices of z as axis, which would be range(201) as you saw. See my edited answer for the correct code.
            – Quang Hoang
            Dec 27 '18 at 21:49












          • Ah I was just working out the same fix. Thanks for your help, now it's perfect! By the way, what can you tell me about my last question?
            – Tommaso Belluzzo
            Dec 27 '18 at 21:56










          • I'm not totally sure about that. Usually I also include plt.show() inside a function as well. Since most of the time I work with jupyter, that fits my need pretty well already.
            – Quang Hoang
            Dec 27 '18 at 22:00











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53947974%2fpython-matplotlib-filling-area-between-two-concentric-circles%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          pyplot.contourf is what you are looking for. Something that can go like this:



          # inner radius
          inner = 0.5

          # the two circles
          thetas = np.linspace(0,2*np.pi, 200)
          # you don't need r = np.one(len(thetas))
          x_unit_circle = np.cos(thetas)
          y_unit_circle = np.sin(thetas)

          x_eigens = x_unit_circle * inner
          y_eigens = y_unit_circle * inner

          xs = np.linspace(-1.1,1.1, 201)
          ys = np.linspace(-1.1,1.1, 201)

          # mesh for contours
          xv,yv = np.meshgrid(xs,ys)

          # generate the level map
          r = xv**2 + yv**2

          pyplot.figure(figsize=(8,8))

          # plot the contours with two levels only
          # notice the xv, yv parameters
          pyplot.contourf(xv, yv, r, levels=[inner**2,1], colors=('r','g','b'))

          # plot the two circles
          pyplot.plot(x_unit_circle, y_unit_circle, color='b', linewidth=3)
          pyplot.plot(x_eigens, y_eigens, color='g', linewidth=3, linestyle='--')

          pyplot.show()


          and result in different background:
          enter image description here






          share|improve this answer























          • Thanks for your answer. I tried your code with no changes and I can't reproduce your result. The contour plot is very big and doesn't match the scale of the concentric circles. Here is what I get instead: i.imgur.com/1U1jeFr.png (you may notice the two circles on the bottom left corner).
            – Tommaso Belluzzo
            Dec 27 '18 at 21:45










          • @TommasoBelluzzo sorry, I forgot to include the xv, yv in contourf. Without these, contourf would take the indices of z as axis, which would be range(201) as you saw. See my edited answer for the correct code.
            – Quang Hoang
            Dec 27 '18 at 21:49












          • Ah I was just working out the same fix. Thanks for your help, now it's perfect! By the way, what can you tell me about my last question?
            – Tommaso Belluzzo
            Dec 27 '18 at 21:56










          • I'm not totally sure about that. Usually I also include plt.show() inside a function as well. Since most of the time I work with jupyter, that fits my need pretty well already.
            – Quang Hoang
            Dec 27 '18 at 22:00
















          1














          pyplot.contourf is what you are looking for. Something that can go like this:



          # inner radius
          inner = 0.5

          # the two circles
          thetas = np.linspace(0,2*np.pi, 200)
          # you don't need r = np.one(len(thetas))
          x_unit_circle = np.cos(thetas)
          y_unit_circle = np.sin(thetas)

          x_eigens = x_unit_circle * inner
          y_eigens = y_unit_circle * inner

          xs = np.linspace(-1.1,1.1, 201)
          ys = np.linspace(-1.1,1.1, 201)

          # mesh for contours
          xv,yv = np.meshgrid(xs,ys)

          # generate the level map
          r = xv**2 + yv**2

          pyplot.figure(figsize=(8,8))

          # plot the contours with two levels only
          # notice the xv, yv parameters
          pyplot.contourf(xv, yv, r, levels=[inner**2,1], colors=('r','g','b'))

          # plot the two circles
          pyplot.plot(x_unit_circle, y_unit_circle, color='b', linewidth=3)
          pyplot.plot(x_eigens, y_eigens, color='g', linewidth=3, linestyle='--')

          pyplot.show()


          and result in different background:
          enter image description here






          share|improve this answer























          • Thanks for your answer. I tried your code with no changes and I can't reproduce your result. The contour plot is very big and doesn't match the scale of the concentric circles. Here is what I get instead: i.imgur.com/1U1jeFr.png (you may notice the two circles on the bottom left corner).
            – Tommaso Belluzzo
            Dec 27 '18 at 21:45










          • @TommasoBelluzzo sorry, I forgot to include the xv, yv in contourf. Without these, contourf would take the indices of z as axis, which would be range(201) as you saw. See my edited answer for the correct code.
            – Quang Hoang
            Dec 27 '18 at 21:49












          • Ah I was just working out the same fix. Thanks for your help, now it's perfect! By the way, what can you tell me about my last question?
            – Tommaso Belluzzo
            Dec 27 '18 at 21:56










          • I'm not totally sure about that. Usually I also include plt.show() inside a function as well. Since most of the time I work with jupyter, that fits my need pretty well already.
            – Quang Hoang
            Dec 27 '18 at 22:00














          1












          1








          1






          pyplot.contourf is what you are looking for. Something that can go like this:



          # inner radius
          inner = 0.5

          # the two circles
          thetas = np.linspace(0,2*np.pi, 200)
          # you don't need r = np.one(len(thetas))
          x_unit_circle = np.cos(thetas)
          y_unit_circle = np.sin(thetas)

          x_eigens = x_unit_circle * inner
          y_eigens = y_unit_circle * inner

          xs = np.linspace(-1.1,1.1, 201)
          ys = np.linspace(-1.1,1.1, 201)

          # mesh for contours
          xv,yv = np.meshgrid(xs,ys)

          # generate the level map
          r = xv**2 + yv**2

          pyplot.figure(figsize=(8,8))

          # plot the contours with two levels only
          # notice the xv, yv parameters
          pyplot.contourf(xv, yv, r, levels=[inner**2,1], colors=('r','g','b'))

          # plot the two circles
          pyplot.plot(x_unit_circle, y_unit_circle, color='b', linewidth=3)
          pyplot.plot(x_eigens, y_eigens, color='g', linewidth=3, linestyle='--')

          pyplot.show()


          and result in different background:
          enter image description here






          share|improve this answer














          pyplot.contourf is what you are looking for. Something that can go like this:



          # inner radius
          inner = 0.5

          # the two circles
          thetas = np.linspace(0,2*np.pi, 200)
          # you don't need r = np.one(len(thetas))
          x_unit_circle = np.cos(thetas)
          y_unit_circle = np.sin(thetas)

          x_eigens = x_unit_circle * inner
          y_eigens = y_unit_circle * inner

          xs = np.linspace(-1.1,1.1, 201)
          ys = np.linspace(-1.1,1.1, 201)

          # mesh for contours
          xv,yv = np.meshgrid(xs,ys)

          # generate the level map
          r = xv**2 + yv**2

          pyplot.figure(figsize=(8,8))

          # plot the contours with two levels only
          # notice the xv, yv parameters
          pyplot.contourf(xv, yv, r, levels=[inner**2,1], colors=('r','g','b'))

          # plot the two circles
          pyplot.plot(x_unit_circle, y_unit_circle, color='b', linewidth=3)
          pyplot.plot(x_eigens, y_eigens, color='g', linewidth=3, linestyle='--')

          pyplot.show()


          and result in different background:
          enter image description here







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Dec 27 '18 at 21:47

























          answered Dec 27 '18 at 17:14









          Quang Hoang

          1,7571913




          1,7571913












          • Thanks for your answer. I tried your code with no changes and I can't reproduce your result. The contour plot is very big and doesn't match the scale of the concentric circles. Here is what I get instead: i.imgur.com/1U1jeFr.png (you may notice the two circles on the bottom left corner).
            – Tommaso Belluzzo
            Dec 27 '18 at 21:45










          • @TommasoBelluzzo sorry, I forgot to include the xv, yv in contourf. Without these, contourf would take the indices of z as axis, which would be range(201) as you saw. See my edited answer for the correct code.
            – Quang Hoang
            Dec 27 '18 at 21:49












          • Ah I was just working out the same fix. Thanks for your help, now it's perfect! By the way, what can you tell me about my last question?
            – Tommaso Belluzzo
            Dec 27 '18 at 21:56










          • I'm not totally sure about that. Usually I also include plt.show() inside a function as well. Since most of the time I work with jupyter, that fits my need pretty well already.
            – Quang Hoang
            Dec 27 '18 at 22:00


















          • Thanks for your answer. I tried your code with no changes and I can't reproduce your result. The contour plot is very big and doesn't match the scale of the concentric circles. Here is what I get instead: i.imgur.com/1U1jeFr.png (you may notice the two circles on the bottom left corner).
            – Tommaso Belluzzo
            Dec 27 '18 at 21:45










          • @TommasoBelluzzo sorry, I forgot to include the xv, yv in contourf. Without these, contourf would take the indices of z as axis, which would be range(201) as you saw. See my edited answer for the correct code.
            – Quang Hoang
            Dec 27 '18 at 21:49












          • Ah I was just working out the same fix. Thanks for your help, now it's perfect! By the way, what can you tell me about my last question?
            – Tommaso Belluzzo
            Dec 27 '18 at 21:56










          • I'm not totally sure about that. Usually I also include plt.show() inside a function as well. Since most of the time I work with jupyter, that fits my need pretty well already.
            – Quang Hoang
            Dec 27 '18 at 22:00
















          Thanks for your answer. I tried your code with no changes and I can't reproduce your result. The contour plot is very big and doesn't match the scale of the concentric circles. Here is what I get instead: i.imgur.com/1U1jeFr.png (you may notice the two circles on the bottom left corner).
          – Tommaso Belluzzo
          Dec 27 '18 at 21:45




          Thanks for your answer. I tried your code with no changes and I can't reproduce your result. The contour plot is very big and doesn't match the scale of the concentric circles. Here is what I get instead: i.imgur.com/1U1jeFr.png (you may notice the two circles on the bottom left corner).
          – Tommaso Belluzzo
          Dec 27 '18 at 21:45












          @TommasoBelluzzo sorry, I forgot to include the xv, yv in contourf. Without these, contourf would take the indices of z as axis, which would be range(201) as you saw. See my edited answer for the correct code.
          – Quang Hoang
          Dec 27 '18 at 21:49






          @TommasoBelluzzo sorry, I forgot to include the xv, yv in contourf. Without these, contourf would take the indices of z as axis, which would be range(201) as you saw. See my edited answer for the correct code.
          – Quang Hoang
          Dec 27 '18 at 21:49














          Ah I was just working out the same fix. Thanks for your help, now it's perfect! By the way, what can you tell me about my last question?
          – Tommaso Belluzzo
          Dec 27 '18 at 21:56




          Ah I was just working out the same fix. Thanks for your help, now it's perfect! By the way, what can you tell me about my last question?
          – Tommaso Belluzzo
          Dec 27 '18 at 21:56












          I'm not totally sure about that. Usually I also include plt.show() inside a function as well. Since most of the time I work with jupyter, that fits my need pretty well already.
          – Quang Hoang
          Dec 27 '18 at 22:00




          I'm not totally sure about that. Usually I also include plt.show() inside a function as well. Since most of the time I work with jupyter, that fits my need pretty well already.
          – Quang Hoang
          Dec 27 '18 at 22:00


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53947974%2fpython-matplotlib-filling-area-between-two-concentric-circles%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Monofisismo

          compose and upload a new article using a custom form

          How to correct the classpath of spring boot application so that it contains a single, compatible version of...