Issues plotting histograms with EyeSee

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Issues plotting histograms with EyeSee

hernanmd

Hi guys,
I want to dome basic plotting with EyeSee in Pharo 1.4, and try to
imitate the following histogram produced with matplotlib:

http://biopython.org/DIST/docs/tutorial/images/hist_plot.png

which was taken from 94 samples rendered with 20 bins. I've tried this
script including the same models:

|  diagram |
diagram := ESDiagramRenderer new.
diagram
        histogram
        models: #(740 753 748 744 733 718 730 704 740 709 700 726 753 699 658
752 726 765 755 742 762 745 750 731 741 740 727 711 743 727 757 770 767
759 750 788 774 789 688 719 743 737 728 740 696 732 731 735 720 740 629
572 587 700 636 716 592 716 733 626 737 740 574 594 610 730 641 702 733
738 736 732 745 744 738 739 740 745 695 745 743 730 706 744 742 694 712
715 688 784 721 703 744 592);
        property: [:each | each ];
        numberOfIntervals: 20;
        rotatedLabels: true;
        yAxisLabel: 'Count';
        xAxisLabel: 'Sequence length (bp)';
        regularAxis;
        addXDecorator: ESValueLabelDecorator new.
^ diagram open

but I'm experimenting some limitations that you may know better:

1) Cannot make both x and y labels to be displayed.
2) In the X axis, matplotlib seems to take only significant interval.
3) Also tried with different decorators (ESValueLabelDecorator,
ESRangeLabelDecorator, ESRegularTickDecorator, etc) but it didn't changed.

Any hints to overcome this?

Best regards,

Hernán
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Issues plotting histograms with EyeSee

Tudor Girba-2
Hi,

Indeed, this is a bug. Please open a bug report here:
http://code.google.com/p/moose-technology/issues/list

Cheers,
Doru



On Fri, Sep 28, 2012 at 2:59 AM, Hernán Morales Durand
<[hidden email]> wrote:

>
> Hi guys,
> I want to dome basic plotting with EyeSee in Pharo 1.4, and try to imitate
> the following histogram produced with matplotlib:
>
> http://biopython.org/DIST/docs/tutorial/images/hist_plot.png
>
> which was taken from 94 samples rendered with 20 bins. I've tried this
> script including the same models:
>
> |  diagram |
> diagram := ESDiagramRenderer new.
> diagram
>         histogram
>         models: #(740 753 748 744 733 718 730 704 740 709 700 726 753 699
> 658 752 726 765 755 742 762 745 750 731 741 740 727 711 743 727 757 770 767
> 759 750 788 774 789 688 719 743 737 728 740 696 732 731 735 720 740 629 572
> 587 700 636 716 592 716 733 626 737 740 574 594 610 730 641 702 733 738 736
> 732 745 744 738 739 740 745 695 745 743 730 706 744 742 694 712 715 688 784
> 721 703 744 592);
>         property: [:each | each ];
>         numberOfIntervals: 20;
>         rotatedLabels: true;
>         yAxisLabel: 'Count';
>         xAxisLabel: 'Sequence length (bp)';
>         regularAxis;
>         addXDecorator: ESValueLabelDecorator new.
> ^ diagram open
>
> but I'm experimenting some limitations that you may know better:
>
> 1) Cannot make both x and y labels to be displayed.
> 2) In the X axis, matplotlib seems to take only significant interval.
> 3) Also tried with different decorators (ESValueLabelDecorator,
> ESRangeLabelDecorator, ESRegularTickDecorator, etc) but it didn't changed.
>
> Any hints to overcome this?
>
> Best regards,
>
> Hernán
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev



--
www.tudorgirba.com

"Every thing has its own flow"

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Issues plotting histograms with EyeSee

Tudor Girba-2
In reply to this post by hernanmd
Hi again,

> |  diagram |
> diagram := ESDiagramRenderer new.
> diagram
>         histogram
>         models: #(740 753 748 744 733 718 730 704 740 709 700 726 753 699
> 658 752 726 765 755 742 762 745 750 731 741 740 727 711 743 727 757 770 767
> 759 750 788 774 789 688 719 743 737 728 740 696 732 731 735 720 740 629 572
> 587 700 636 716 592 716 733 626 737 740 574 594 610 730 641 702 733 738 736
> 732 745 744 738 739 740 745 695 745 743 730 706 744 742 694 712 715 688 784
> 721 703 744 592);
>         property: [:each | each ];
>         numberOfIntervals: 20;
>         rotatedLabels: true;
>         yAxisLabel: 'Count';
>         xAxisLabel: 'Sequence length (bp)';
>         regularAxis;
>         addXDecorator: ESValueLabelDecorator new.
> ^ diagram open
>
> but I'm experimenting some limitations that you may know better:
>
> 1) Cannot make both x and y labels to be displayed.

Fixed now

> 2) In the X axis, matplotlib seems to take only significant interval.

I do not quite like that part because I want to see where the
distribution is within the overall scale :).

> 3) Also tried with different decorators (ESValueLabelDecorator,
> ESRangeLabelDecorator, ESRegularTickDecorator, etc) but it didn't changed.

I also fixed the labels of the identifiers a bit. Now you can rotate
the labels, and for each bar, the label shows the interval of values.
However, looking at your example, perhaps the labeling should be a bit
more flexible in that perhaps it should behave like an axis.

Cheers,
Doru

> Any hints to overcome this?
>
> Best regards,
>
> Hernán
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev



--
www.tudorgirba.com

"Every thing has its own flow"

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Issues plotting histograms with EyeSee

hernanmd
Hi Tudor,

Now it works much better!
Thx for the fixes.
Cheers,

Hernán

On 01/10/2012 3:00, Tudor Girba wrote:

> Hi again,
>
>> |  diagram |
>> diagram := ESDiagramRenderer new.
>> diagram
>>          histogram
>>          models: #(740 753 748 744 733 718 730 704 740 709 700 726 753 699
>> 658 752 726 765 755 742 762 745 750 731 741 740 727 711 743 727 757 770 767
>> 759 750 788 774 789 688 719 743 737 728 740 696 732 731 735 720 740 629 572
>> 587 700 636 716 592 716 733 626 737 740 574 594 610 730 641 702 733 738 736
>> 732 745 744 738 739 740 745 695 745 743 730 706 744 742 694 712 715 688 784
>> 721 703 744 592);
>>          property: [:each | each ];
>>          numberOfIntervals: 20;
>>          rotatedLabels: true;
>>          yAxisLabel: 'Count';
>>          xAxisLabel: 'Sequence length (bp)';
>>          regularAxis;
>>          addXDecorator: ESValueLabelDecorator new.
>> ^ diagram open
>>
>> but I'm experimenting some limitations that you may know better:
>>
>> 1) Cannot make both x and y labels to be displayed.
>
> Fixed now
>
>> 2) In the X axis, matplotlib seems to take only significant interval.
>
> I do not quite like that part because I want to see where the
> distribution is within the overall scale :).
>
>> 3) Also tried with different decorators (ESValueLabelDecorator,
>> ESRangeLabelDecorator, ESRegularTickDecorator, etc) but it didn't changed.
>
> I also fixed the labels of the identifiers a bit. Now you can rotate
> the labels, and for each bar, the label shows the interval of values.
> However, looking at your example, perhaps the labeling should be a bit
> more flexible in that perhaps it should behave like an axis.
>
> Cheers,
> Doru
>
>> Any hints to overcome this?
>>
>> Best regards,
>>
>> Hernán
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
>
>

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Issues plotting histograms with EyeSee

hernanmd
In reply to this post by Tudor Girba-2
Hi Tudor,
If you load the attached mcz you may see an experiment I tried with
decorators. I've added two menus for testing to change decorators on the
fly. But after selecting (adding) decorators nothing changes in the
canvas. Do you know what's missing?

I think the menu could be generalized to change drawing settings, what
do you think?

Hernán

On 01/10/2012 3:00, Tudor Girba wrote:

> Hi again,
>
>> |  diagram |
>> diagram := ESDiagramRenderer new.
>> diagram
>>          histogram
>>          models: #(740 753 748 744 733 718 730 704 740 709 700 726 753 699
>> 658 752 726 765 755 742 762 745 750 731 741 740 727 711 743 727 757 770 767
>> 759 750 788 774 789 688 719 743 737 728 740 696 732 731 735 720 740 629 572
>> 587 700 636 716 592 716 733 626 737 740 574 594 610 730 641 702 733 738 736
>> 732 745 744 738 739 740 745 695 745 743 730 706 744 742 694 712 715 688 784
>> 721 703 744 592);
>>          property: [:each | each ];
>>          numberOfIntervals: 20;
>>          rotatedLabels: true;
>>          yAxisLabel: 'Count';
>>          xAxisLabel: 'Sequence length (bp)';
>>          regularAxis;
>>          addXDecorator: ESValueLabelDecorator new.
>> ^ diagram open
>>
>> but I'm experimenting some limitations that you may know better:
>>
>> 1) Cannot make both x and y labels to be displayed.
>
> Fixed now
>
>> 2) In the X axis, matplotlib seems to take only significant interval.
>
> I do not quite like that part because I want to see where the
> distribution is within the overall scale :).
>
>> 3) Also tried with different decorators (ESValueLabelDecorator,
>> ESRangeLabelDecorator, ESRegularTickDecorator, etc) but it didn't changed.
>
> I also fixed the labels of the identifiers a bit. Now you can rotate
> the labels, and for each bar, the label shows the interval of values.
> However, looking at your example, perhaps the labeling should be a bit
> more flexible in that perhaps it should behave like an axis.
>
> Cheers,
> Doru
>
>> Any hints to overcome this?
>>
>> Best regards,
>>
>> Hernán
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev

EyeSee-Core-HernanMoralesDurand.99.mcz (115K) Download Attachment