RubyData

GSoC 2019 Project [ Rubyplot ] discussion

Can’t really say. Maybe we can try reading the images using some library that is not Magick?

Yes.

That’s a bug and should be fixed.

@AlishDipani how’s your progress regarding the X and Y ticks?

Here’s some more feedback regarding the blog post:

As an example, in the Setting Output Device part of the post, you’ve a detailed explanation of the function of each within the method init_output_device. But what is missing here is the ‘purpose’ of each line. I can see that you’re creating three Magick::Draw objects. But WHY create three objects? What were the underlying design decisions that lead to creation of three objects instead of just one? These things are much more interesting to someone reading your post to get a technical overview. They also serve as guidelines later when a developer is wondering about the purpose of the code.

Another example is that we do not use the MATLAB notation for creating subplots (which is used by matplotlib). Would be great if you can write the reasons for that too.

Also explain why you do the text rotation in Magick the way you do.
Please make such updates to your post before moving on to the next one.

Yes, I’ll look into it.

Is opacity 0.7 fine?
Also, to do this we will have to use the draw_circle function instead of draw_markers as it does not support opacity.

I was unavailable and could not work on this, I will look into this soon

I will make these changes soon (surely by Saturday)

[RUBYPLOT-GSOC][DAILY][17 June] Back to work

Planned progress
Checking Histogram

Progress

  • Passed the tests for histogram
  • Shifted set_background_gradient to backend
  • Added exception to markers which are not yet implemented

Problems

  • I tested subplots (all scatter plots) for Magick and GR backends and found a bug in Magick subplots, the Rubyplot coordinates are not flipped in within_window. Example

4x6 and 6x4 plots in GR-
scatter_4x6_gr
scatter_6x4_gr

4x6 and 6x4 plots in Magick-
scatter_4x6_magick

I will look into this soon.

Plans

  • Check Line plot
  • Improve blog
  • Complete remaining work and solve remaining bugs

[RUBYPLOT-GSOC][DAILY][18 June] Getting back on track

Planned progress
Checking Line plot

Progress

  • Corrected draw_line function
  • Updated draw_lines function
  • Passed all the tests for Line plot

Problems

  • GR backend does not have line colours
  • Magick backend colours all the lines same as the last colour given
  • Line types have not been implemented
  • A potential problem in Frontend of Line plot: When only one array is given to the Line plot, it considers it as x values and y values are adjusted accordingly whereas in Matplotlib’s plot function, this data is considered as y values and x values are adjusted accordingly. So, is it correct @v0dro?

Plans

  • Complete the blog ASAP.
  • Check Error bar plot
  • Implement draw_arrow function

[RUBYPLOT-GSOC][DAILY][19 June] The plots

Planned progress
Working on Error bar plot

Progress

  • Passed basic tests for Error bar plot

Problems

  • What are arrows? They are not drawn in GR backend either? The x1,x2, y1,y2 are said to be coordinates of head and tail of the arrow, what does the tail refer to? @v0dro please let me know about this
  • Magick backend plots the lines beyond the axes (outside plotting window)
  • Arrow styles are not implemented

Plans

  • Complete the blogs
  • Implement arrows
  • Improving Error bar plot
  • Completing remaining work

[RUBYPLOT-GSOC][DAILY][20 June] The plots

Planned progress
Working on the Error bar plot

Progress

  • Improved the blogs

Problems

  • The blog will be completed soon

Plans

  • Complete the Blogs
  • Check box plot

[RUBYPLOT-GSOC][DAILY][21 June] Improvements

Planned progress
Working on Box plot

Progress

  • Passed the tests for box plot
  • Corrected default marker type for draw_markers and the variable for nominal factor
  • Added a hash of lambdas for line types
  • Improved draw_lines and draw_line functions

Problems

Plans

  • Blog update
  • Code review

[RUBYPLOT-GSOC][DAILY][22 June] Code Review

Planned progress
Working on Box plot

Progress

  • Started the code review for first evaluation

Problems

Plans

  • Complete the code review
  • Complete the blogs
  • Work on violin plot

[RUBYPLOT-GSOC][DAILY][23 June] Sunday

Had a weekly meeting with @v0dro. To-do list till Phase 1 evaluation ends:

  1. Finish the Blogs
  2. Implement Ticks
  3. Write documentation and host it at readthedocs (mostly) and the website should update the docs when the code is updated
  4. Leaving violin plot for now as it lacks the frontend
  5. Correcting the overlapping of title and X-axis title of figures having multiple vertical subplots
  6. Determining the opacity for bubble plot
  7. Looking into legend box for bar plot
  8. Correcting the y inversion of subplots in Magick
  9. Correct the frontend of Line plot
  10. Use another library for testing
  11. Implement arrows
  12. Introduce a minimal factor to make the line width of Magick backend same as GR
  13. Test bar plots for multiple bar plots in the same subplot

[RUBYPLOT-GSOC][DAILY][24 June] Evaluation

Planned progress
Working on Violin plot

Progress

  • Not working on Violin plot for now as the frontend is not implemented
  • Improved The scatter plot example blog
  • Corrected the Line plot Frontend

Problems

Plans

  • Working on Blogs
  • Completing the remaining work

[RUBYPLOT-GSOC][DAILY][25 June] Evaluation

Planned progress
Complete Evaluation

Progress

  • Working on Code review

Problems

Plans

  • Complete the blogs
  • Implement ticks

[RUBYPLOT-GSOC][DAILY][26 June] Evaluation

Planned progress
Complete Evaluation

Progress

  • Completed code review
  • decided on the format and what all is to be included in the next blog

Problems

  • User guide for installation of Magick backend is not present.

Plans

  • Complete the blogs
  • Implement ticks

@v0dro I am creating another blog for this which explains the code and the purpose of the functions and the design decisions as well. Link: https://alishdipani.github.io/gsoc2019/2019/06/12/Setting-up-the-ImageMagick-backend/

I will complete this blog and the blog for plots hopefully by Saturday EOD

[RUBYPLOT-GSOC][DAILY][27 June] Evaluation

Planned progress
Complete Evaluation

Progress

  • Worked on the blogs

Problems

Plans

  • Complete the blogs
  • Implement ticks

[RUBYPLOT-GSOC][DAILY][28 June] Evaluation

Planned progress
Complete Evaluation

Progress

Problems

  • I will apply for my visa soon and the appointment for it will be on Tuesday or Wednesday and hence I will be unavailable to work for 2-3 days during that time.

Plans

  • Complete the blogs
  • Implement ticks

[RUBYPLOT-GSOC][DAILY][29 June] Starting multiple plots

Planned progress
Check multi bar plot

Progress

  • Worked on blog
  • Wrote an experimental test for multi bar plot and the output is correct
    data given =
[["Data1", [4, 7, 12], :blue],
 ["Data2", [2, 6, 10], :yellow],
 ["Data3", [3, 8, 11], :red],
 ["Data4", [1, 5, 9], :black]]

Output for GR backend:

Output for Magick backend:

  • Corrected the function for the input of spacing_ratio in bar plot

Problems

  • I will complete the blog in 1-2 days
  • What is the purpose of the stacked_bar plot? is it different than a simple bar plot? @v0dro
  • I saw that there is a test for dot plot but there is no such plot, should dot plot be added? @v0dro
  • Matplotlib allows the user to set the x coordinates, whereas in Rubyplot it is decided by us, should there be an option to take the x values as an input? @v0dro
  • Bar plot does not create legend box (or it is not visible)

Plans

  • Complete the blogs
  • Implement ticks
  • Check multi box plot