[ncl-talk] issue with gsn_add_polygon

Adam Herrington adam.herrington at stonybrook.edu
Sun Jun 14 17:01:13 MDT 2020


that makes sense. thanks.

On Sun, Jun 14, 2020 at 4:58 PM Dave Allured - NOAA Affiliate <
dave.allured at noaa.gov> wrote:

> Okay.  That will work, but it will draw the first bin asymmetric with
> respect to the rest of the polygon, except when pdfib(0) = 0.  For very
> small pdfib(0), the asymmetry will not be noticeable.  For a true
> horizontal edge at the base of each polygon, you should include the extra
> coordinate pair like I showed before.
>
>
> On Sun, Jun 14, 2020 at 2:20 PM Adam Herrington <
> adam.herrington at stonybrook.edu> wrote:
>
>> You're right, they are not closed contours. I forced them closed through
>>
>>     xib = new( (/2*nbins/), "double")
>>     yib = new( (/2*nbins/), "double")
>>     ...
>>     xib(0) = xib(2*nbins-1)
>>     yib(0) = yib(2*nbins-1)
>>
>> Thanks a lot Dave! I'll be presenting this plot at cesm workshop on
>> wednesday if you're curious of what it means.
>>
>> Adam
>>
>> On Sun, Jun 14, 2020 at 8:18 AM Dave Allured - NOAA Affiliate <
>> dave.allured at noaa.gov> wrote:
>>
>>> Very nice plots.  Notice how those mystery lines fade as they approach
>>> (0,0).  That is because they are polygons, not lines.  Specifically, long
>>> skinny triangles.  That is a clue.
>>>
>>> xib and yib are not closed contours.  I am not sure whether
>>> gsn_add_polygon is supposed to close them for you.  But since this seems to
>>> coincide with the visible anomalies, try closing them explicitly.
>>>
>>>     xib = new( (/2*nbins+1/), "double")
>>>     yib = new( (/2*nbins+1/), "double")
>>>     ...
>>>     xib(2*nbins) = xib(0)
>>>     yib(2*nbins) = yib(0)
>>>
>>>
>>> On Fri, Jun 12, 2020 at 7:59 PM Adam Herrington via ncl-talk <
>>> ncl-talk at mailman.ucar.edu> wrote:
>>>
>>>> I'm attempting to compute a raw violin-type plot. This is similar to a
>>>> box plot, but I'm drawing a polygon around the pdf, and I close the polygon
>>>> through a mirror image (-1*probability). Then I rotate it so it's vertical,
>>>> and align it with the x-axis "id" of the box plot.
>>>>
>>>> If you're not following, I don't blame you ... this is hard to
>>>> describe. Attached is my attempt at this that will hopefully clarify what
>>>> I'm trying to do.
>>>>
>>>> **digression before I go on to details on my primary issue**
>>>> I'd like to experiment with an actual violin plot, with a smoothed
>>>> kernel density estimate of the distribution. The routine kde_n_test
>>>> <https://www.ncl.ucar.edu/Document/Functions/Built-in/kde_n_test.shtml> should
>>>> work, but the warnings on the ncl page say the function is under
>>>> construction. Is that the latest update for this function?
>>>> **end digression**
>>>>
>>>> You'll notice for panels 2 and 3 there is a line pivoting from the
>>>> bottom of the pdf's to the (0,0) point on the plot. I'm having trouble
>>>> tracking down why this occurs and how to fix it. I'm going to copy-paste
>>>> the relevant portions of the code for one of the x-value id's.
>>>>
>>>>   dx = 0.4d0 ;; x-depth of the pdf
>>>>   xvals = (/1.,2.,3.,4.,5.,6./) ;; case id
>>>> ...
>>>>     pdfib = pdfx(ibdiff,nbins,optpdf)
>>>>     pdfib = pdfib/max(pdfib)
>>>>
>>>>     xib = new( (/2*nbins/), "double")
>>>>     yib = new( (/2*nbins/), "double")
>>>>
>>>>     xib(0:nbins-1) = xvals(n) - dx*pdfib
>>>>     xib(nbins:2*nbins-1) = xvals(n) + dx*pdfib(nbins-1:0)
>>>>     yib(0:nbins-1) = pdfib at bin_center
>>>>     yib(nbins:2*nbins-1) = pdfib at bin_center(nbins-1:0)
>>>>
>>>>     pgstr = unique_string("dum")
>>>>     plot@$pgstr$ = gsn_add_polygon(wks,plot(0),xib,yib,respg)
>>>>
>>>> I am pretty sure the xib and yib are a closed contour.. they go from
>>>> 0:nbins-1 and then nbins:2*nbins-1 ... Would like to get another set of
>>>> eyes on this though
>>>>
>>>> thanks,
>>>> Adam
>>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20200614/c1c8bfb8/attachment.html>


More information about the ncl-talk mailing list