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 |
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 |
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 |
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 |
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 |
Free forum by Nabble | Edit this page |