swiftplot icon indicating copy to clipboard operation
swiftplot copied to clipboard

Allow stacking data sets in Line Chart

Open KarthikRIyer opened this issue 5 years ago • 28 comments

A stack plot is similar to a Line Plot, the difference being that the data sets are stacked over one another. A simple example can be found here.

This task will require you to implement the following:

  • Add functions to atleast two from the three renderers (AGG/SVG/CoreGraphics) to allow drawing of solid polygons.
  • Add the capability to allow stacking of data sets in Line Chart.

KarthikRIyer avatar Nov 25 '19 19:11 KarthikRIyer

Hi, I'm interested in working on this.

boronhub avatar Dec 10 '19 15:12 boronhub

@boronhub that's great! You should claim the task on the GCI website and also state there that you're interested in working on this issue. If you have any other questions, feel free to ask.

KarthikRIyer avatar Dec 10 '19 15:12 KarthikRIyer

One of my other tasks still hasn't been reviewed, so I can't claim it yet. Can I still start work on this so as to familiarize myself with SwiftPlot ?

boronhub avatar Dec 10 '19 15:12 boronhub

@boronhub sure!

KarthikRIyer avatar Dec 10 '19 15:12 KarthikRIyer

Is there a Google Group or an IRC where we can discuss this ?

boronhub avatar Dec 10 '19 15:12 boronhub

There is a Google Group for Swift for TensorFlow, but I prefer we discuss it here in GitHub issues.

KarthikRIyer avatar Dec 10 '19 15:12 KarthikRIyer

The changes have to be made in LineChart.swift, right ?

boronhub avatar Dec 10 '19 15:12 boronhub

@boronhub yes. You need to make changes in LineChart.swift. You can create a file LineChartSeriesOptions.swift similar to HistogramSeriesOptions.swift. Using that you can decide if you want the plot to be stacked or not.

KarthikRIyer avatar Dec 10 '19 16:12 KarthikRIyer

@karwa do you have any suggestions regarding this?

KarthikRIyer avatar Dec 10 '19 17:12 KarthikRIyer

Not particularly - just to follow the example set by BarGraph when it comes to stacking.

Matplotlib calls this a stackplot and has this as a separate kind of chart. I think that would probably also make sense for us, rather than combining it with the line chart (for example, you can't have multiple series on a line chart if the some of the series also have stacks and are filled underneath).

karwa avatar Dec 10 '19 18:12 karwa

I agree. @boronhub you could make a new chart type. I think you should be able to lift most of the code from line chart and make the required changes to get it working.

KarthikRIyer avatar Dec 10 '19 18:12 KarthikRIyer

The example notebook isn't working in Jupyter. It's saying Line magic command '%install' not found.

boronhub avatar Dec 11 '19 06:12 boronhub

@boronhub the example notebook isn't updated. Are you using swift-jupyter, or colab?

KarthikRIyer avatar Dec 11 '19 08:12 KarthikRIyer

colab

boronhub avatar Dec 11 '19 12:12 boronhub

Plotting on colab won't work at the moment. There's some problem in that. But you can use swift-jupyter. The notebook example hasn't been updated. You can copy the code from the example in the docs.

KarthikRIyer avatar Dec 11 '19 12:12 KarthikRIyer

@boronhub are you still working on this? I got swiftplot on Linux working if using the notebook is giving you difficulty.

WilliamHYZhang avatar Dec 15 '19 02:12 WilliamHYZhang

My VM keeps crashing so im trying to build swift on Windows. I got the notebook working, but %install still isn't working.

boronhub avatar Dec 15 '19 06:12 boronhub

@boronhub you can try using the Linux Subsystem for Windows. So you won't need a VM to use Linux. Check this out: https://docs.microsoft.com/en-us/windows/wsl/install-win10

But you won't be able to use swift-jupyter or any GUI based applications, but you'll be able to work on SwiftPlot and won't need to build swift.

KarthikRIyer avatar Dec 15 '19 08:12 KarthikRIyer

Yeah , I tried WSL as well but to no avail.

boronhub avatar Dec 15 '19 11:12 boronhub

I'll figure it out soon

boronhub avatar Dec 15 '19 11:12 boronhub

Alright, best of luck!

WilliamHYZhang avatar Dec 15 '19 23:12 WilliamHYZhang

error: could not build C module 'CoreFoundation'

can't seem to get over this, any suggestions ?

boronhub avatar Dec 17 '19 14:12 boronhub

@boronhub where are you getting this error? Could you provide more details?

KarthikRIyer avatar Dec 17 '19 16:12 KarthikRIyer

upon executing

%install-swiftpm-flags -Xcc -isystem/usr/include/freetype2 -Xswiftc -lfreetype %install '.package(url: "https://github.com/IBM-Swift/BlueCryptor.git", from: "1.0.28")' Cryptor %install '.package(url: "https://github.com/KarthikRIyer/swiftplot", .branch("master"))' SwiftPlot AGGRenderer

in a jupyter notebook (used WSL)

boronhub avatar Dec 17 '19 19:12 boronhub

@boronhub I haven't seen this error before and am having trouble using jupyter notebook in WSL. But you do not need jupyter to work on swiftplot. You can still use the command line.

KarthikRIyer avatar Dec 17 '19 19:12 KarthikRIyer

Is there any documentation for this?

boronhub avatar Dec 17 '19 19:12 boronhub

Try installing swift on ubuntu linux here: https://itsfoss.com/use-swift-linux (use the most recent swift version files)

WilliamHYZhang avatar Dec 17 '19 19:12 WilliamHYZhang

@boronhub - Looks like you are opening in python notebook, %install etc. will not work in Jupyter. I tried installing packages through Anaconda and Python and was not successful.

Alternatively, you can use the route mentioned by @WilliamHYZhang ...It is working!

Also, I tried using Docker image https://github.com/apple/swift-docker. It works as well, but requires some minor tweaks.

anigasan avatar Dec 20 '19 00:12 anigasan