[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bar plot with logarithmic scale on y-axis
From: |
Ben Abbott |
Subject: |
Re: Bar plot with logarithmic scale on y-axis |
Date: |
Mon, 24 Mar 2014 09:05:05 -0400 |
On Mar 24, 2014, at 8:53 AM, Juan Pablo Carbajal <address@hidden> wrote:
> On Mon, Mar 24, 2014 at 12:48 PM, Damian Harty <address@hidden> wrote:
>>> I'd like to plot my data in a bar chart with log scale on the y-axis.
>>> Here's what I tried:
>>
>>> h = bar ([1:10]',rand(10,1));
>>> set (gca,'yscale','log');
>>
>>> The first command produces the expected bar chart. The second command scales
>>> the y-axis as expected, but the bars in the plot get screwed up. Can someone
>>> please help me with this?
>>
>> I think the plotting algorithm tries to draw the boxes for the bars from
>> zero and flags a logarithm domain error at this point. Excel handles this
>> "intuitively" but alas Octave only draws the top of the bar.
>>
>> I have 3 options to offer:
>>
>> 1) Edit the code to do what you want (be careful what you wish for)
>> 2) Make a new variable that is the log of your data and plot that on
>> appropriately annotated scales
>> 3) Plot the data in Excel or similar
>>
>>
>>
>>
>> CONFIDENTIAL: The information contained in this email communication is
>> confidential information intended only for the use of the addressee.
>> Unauthorized use, disclosure or copying of this communication is strictly
>> prohibited and may be unlawful. If you have received this communication in
>> error, please notify us immediately by return email and destroy all copies
>> of this communication, including all attachments.
>> _______________________________________________
>> Help-octave mailing list
>> address@hidden
>> https://mailman.cae.wisc.edu/listinfo/help-octave
>
> Remember that you can get help using the command
>> help bar
>
> In this case you will see that the option "basevalue" solves your problem.
> e.g.
>
> h = bar ([1:10]',rand(10,1),"basevalue",1e-8);
> set (gca,'yscale','log');
I just checked Matlab. For log scale Matlab's basevalue is equal to 1.
Looks like a bug.
I filed a bug report.
https://savannah.gnu.org/bugs/index.php?41944
Ben