KarthikRIyer / swiftplot

Swift library for Data Visualization :bar_chart:
Apache License 2.0
401 stars 39 forks source link

Allow stacking data sets in Line Chart #41

Open KarthikRIyer opened 4 years ago

KarthikRIyer commented 4 years ago

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:

boronhub commented 4 years ago

Hi, I'm interested in working on this.

KarthikRIyer commented 4 years ago

@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.

boronhub commented 4 years ago

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 ?

KarthikRIyer commented 4 years ago

@boronhub sure!

boronhub commented 4 years ago

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

KarthikRIyer commented 4 years ago

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

boronhub commented 4 years ago

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

KarthikRIyer commented 4 years ago

@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 commented 4 years ago

@karwa do you have any suggestions regarding this?

karwa commented 4 years ago

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).

KarthikRIyer commented 4 years ago

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.

boronhub commented 4 years ago

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

KarthikRIyer commented 4 years ago

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

boronhub commented 4 years ago

colab

KarthikRIyer commented 4 years ago

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.

WilliamHYZhang commented 4 years ago

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

boronhub commented 4 years ago

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

KarthikRIyer commented 4 years ago

@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.

boronhub commented 4 years ago

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

boronhub commented 4 years ago

I'll figure it out soon

WilliamHYZhang commented 4 years ago

Alright, best of luck!

boronhub commented 4 years ago

error: could not build C module 'CoreFoundation'

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

KarthikRIyer commented 4 years ago

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

boronhub commented 4 years ago

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)

KarthikRIyer commented 4 years ago

@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.

boronhub commented 4 years ago

Is there any documentation for this?

WilliamHYZhang commented 4 years ago

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

anigasan commented 4 years ago

@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.