Book on Julia for Data Science

Overview
Comments
  • Overview of Plots.jl Chapter

    Overview of Plots.jl Chapter

    Here is an opinionated version. Feel free to criticize:

    Subsections for Plots

    Brief overview of the JuliaPlots ecosystem

    • JuliaPlots Organization
    • Plots.jl (what is it good for and what are its limitations)
    • Makie.jl (what is it good for and what are its limitations)
    • AlgebraOfGraphics.jl (what is it good for and what are its limitations) (version 2.0)
    1. What is Plots.jl?

      • plot vs plot!
      • input data
      • Series Types and functions(e.g. line, line!, heatmap, heatmap!)
      • How to save a plot
    2. Attributes

      • Overview (What are attributes, and the whole symbol e.g. :xticks system)
      • Series attributes
      • Plot Attributes
      • Footnote about the extra_kwargs stuff
      • Examples using the most common things that you want to do in a visualization. This could be inserted right after you introduce a specific attribute.
    3. Color and Palettes I think we should cover colorbrewer and the ones from matplotlib (inferno, viridis, magma). We should cover some stuff from the Claus Wilke Fundamentals of Data Visualization book (Chapters 4 and 19). Also we should cover the three types of color usage:

      1. sequential: continuous stuff, e.g. :blues (only blue)
      2. diverging: continuous stuff, e.g. :RdBu (from red to blue)
      3. distinguishable: discrete stuff, e.g. :Set1_5

      I have a very strong positive bias towards colorbrewer Sets (e.g. palette=:Set1_5).

      We should also mention that the reader should use a colorblinded-friendly palette or colors. Maybe we should include an official statistics regarding the prevalence of any sort of colorblindness or color difficulties in the population. I remember seeing somewhere that it was around 5% of people.

    4. Layouts

      • Overview on several ways to do layouts
      • the layout argument, also cover the grid
      • the @layout macro
      • specific measures with the Plots.PlotMeasures submodule
      • adding subplots incremententally. Define p1, p2, p3; then do a plot(p1, p2, p3; layout=l)
    writing 
    opened by storopoli 13
  • Add full cover

    Add full cover

    This PR add code to generate the full cover. See https://github.com/JuliaDataScience/JuliaDataScience/issues/17#issuecomment-927185934 for more information about the dimensions.

    I don't consider the cover done and perfect now. It is meant as a place where we can start discussing the appearance.

    Preview

    image

    EDIT: This wasn't working in Amazon. It was turned into

    image

    So, instead using the Amazon cover editor:

    image

    which is turned into

    image

    opened by rikhuijzer 10
  • makie.jl: ERROR: LoadError: UndefVarError: Downloads not defined

    makie.jl: ERROR: LoadError: UndefVarError: Downloads not defined

    Hi,

    I get an

    ERROR: LoadError: UndefVarError: Downloads not defined
    Stacktrace:
     [1] top-level scope
       @ o:\Julia\makie.jl:604
    in expression starting at o:\Julia\makie.jl:604
    

    Commented out.

    And on execution for all demo functions:

    ERROR: UndefVarError: Options not defined
    Stacktrace:
     [1] custom_plot()
       @ Main o:\Julia\makie.jl:16
     [2] top-level scope
       @ REPL[12]:1
    

    Commented out.

    On execution,

    custom_plot()

    no error, no plot appears.

    opened by bardo84 10
  • Chapter 7 Link broken to Makie Docs

    Chapter 7 Link broken to Makie Docs

    There is a link broken in Chapter 7 datavisMakie.md:

    In the "See Makie’s documentation for more." It redirects to http://makie.juliaplots.org/stable/backends_and_output.html#Backends-and-Output which is broken.

    cc @lazarusA

    bug 
    opened by storopoli 9
  • Notation discussion points

    Notation discussion points

    Notation discussion points from #20:

    1. Always using : before the start of a code block.
    2. Mentioning functions like DataFrame as DataFrame() or DataFrame(...).
    3. My suggestion: only Julia objects between backticks and filenames and extension names between quotation marks (like Julia's strings).
    opened by rikhuijzer 9
  • [dataframes_select] not the same selection

    [dataframes_select] not the same selection

    The lines

    https://github.com/JuliaDataScience/JuliaDataScience/blob/b5582d29a9afa300e0a124ad2820389c386c04cc/contents/dataframes_select.md#L48-L56

    don't give the same result as the previous example ... (where :id is not shown)

    I think you need to rephrase the text.

    opened by Mo-Gul 7
  • Fix pipe alignment in front cover

    Fix pipe alignment in front cover

    this should fix some alignment issues regarding the pipes. Additionally, I did a print for the previous one and the lack of grid lines makes the whole cover a little bit dull.

    opened by lazarusA 7
  • Julia cannot reproduce the rand

    Julia cannot reproduce the rand

    I have put an issue on Stack Overflow about an example of this book. Could you please explain? https://stackoverflow.com/questions/70321085/julia-cannot-reproduce-the-rand

    Many thanks.

    Shixiang

    opened by ShixiangWang 6
  • Improve section numbering

    Improve section numbering

    For a discussion see issue #221 that it is beneficial to have unnumbered sections when there are no other sections on that level, i.e. that there is no other "section x.2".

    There is only the instance

    https://github.com/JuliaDataScience/JuliaDataScience/blob/2c750e092b7aa932cf10d7fc12f1d0f7ba7ae909/contents/julia_basics.md#L671

    which cannot be made unnumbered, because it is referenced at

    https://github.com/JuliaDataScience/JuliaDataScience/blob/2c750e092b7aa932cf10d7fc12f1d0f7ba7ae909/contents/dataframes_performance.md#L9

    My suggestion is to bring this one level up, i.e.

    - #### Functions with a bang `!` {#sec:function_bang}
    + ### Functions with a bang `!` {#sec:function_bang}
    

    I think that also fits to the previous section header where I (with my current n00bie understanding) don't see the "bang operator" fitting in.

    Do you agree? If yes, I would prepare another commit. Otherwise you can merge the PR directly.

    opened by Mo-Gul 6
  • Logo for Julia Data Science Organization

    Logo for Julia Data Science Organization

    We need a logo I will talk to someone who can do that for me at UNINOVE. Any thoughts @rikhuijzer ? We should move anything stats/Bayesian so to not confuse with future endeavors.

    Maybe something with Tabular Data or Line Plots. We should definitely use Julia colors.

    • [x] Update JuliaDataScience GitHub Organization Logo
    • [x] Update JuliaDataScience Book favicon site icon
    enhancement 
    opened by storopoli 6
  • improve typographical stuff

    improve typographical stuff

    As I already stated in e.g. https://github.com/JuliaDataScience/JuliaDataScience/pull/215/commits/e8e1d11ed6386f8bcd552abbfd9ab058c3176b51 it would nice to make some sections unnumbered when there is no second section on that level.

    When I have seen this correct, this should be possible by appending the section entry by {-} as e.g. can be seen in

    https://github.com/JuliaDataScience/JuliaDataScience/blob/56151f0f6d69ad4c62945aa1deb3169af90ef9ad/contents/index.md#L1

    So if you consider it would be nice to have that I'll redo the suggestions in a new PR. Especially if it is that easily doable.


    PS:
    I am not sure if my newest comments in #217 have been noticed by one of you, since I have added them after the PR was merged. Thank you for your comments!

    opened by Mo-Gul 5
  • cheatSheet_cairo.jl improvements

    cheatSheet_cairo.jl improvements

    Some suggested changes to the CairoMakie cheatsheet, some for consistency and some to make it easier to understand what the function actually does (I think that is the main use of this figure: once the purpose of a plotting function is clear, the user can always check the documentation for the different ways to call the function). The biggest change is for linesegments: it now uses the linesegments(x, y) signature with the same data as the previous plots, to help understanding what's going on.

    Full list of changes:

    • change range of first plots to have even number of points (for linesegments)
    • change linesegments to use same data as previous plots
    • uniformize parameter names in plot titles
    • use variable heights in crossbar
    • fix title of violin plot
    • more explicit title for mesh
    opened by knuesel 0
  • 4.1.2 Excel - failure

    4.1.2 Excel - failure

    Hi,

    Using Julia 1.8.1, VS Code notebooks

    Entering the code from 4.1.2 Excel, I tried running: path = write_grades_xlsx() xf = readxlsx(path)

    which gave: MethodError: objects of type Vector{String} are not callable Use square brackets [] for indexing an Array.

    Stacktrace: [1] write_xlsx(name::String, df::DataFrame) @ Main ~/julia-test/juliadatascience-dataframes.ipynb:4 [2] write_grades_xlsx() @ Main ~/julia-test/juliadatascience-dataframes.ipynb:3 [3] top-level scope @ ~/julia-test/juliadatascience-dataframes.ipynb:1

    Here's the function: function write_xlsx(name, df::DataFrame) path = "$name.xlsx" data = collect(eachcol(df)) cols = names(df) writetable(path, data, cols) end

    I found that because you had defined a "names" variable earlier in the chapter, this clobbered the "names()" function. When I changed this to use Base.names(), everything worked properly. (Somewhat ironically, you mentioned the global variable problem just after defining "names". ;-))

    I'd recommend just renaming "names" to something less ambiguous, and then it won't break the code below.

    Thanks for the great work! Ari

    opened by arimeyer 0
  • new book format

    new book format

    After this first experience of doing and printing the book I still feel that the margins [text at the edges] and overall book size is not an appropriate layout. Thoughts?

    version-2 
    opened by lazarusA 2
Releases(edition-1)
Owner
Julia Data Science
Julia Data Science Book
Julia Data Science
A simple computer program made with Python on the brachistochrone curve.

Brachistochrone-curve This is a simple computer program made with Python on the brachistochrone curve. I decided to write it after a physics lesson on

Diego Romeo 1 Dec 16, 2021
PsychoPy is an open-source package for creating experiments in behavioral science.

PsychoPy is an open-source package for creating experiments in behavioral science. It aims to provide a single package that is: precise enoug

PsychoPy 1.3k Dec 31, 2022
AnuGA for the simulation of the shallow water equation

ANUGA Contents ANUGA What is ANUGA? Installation Documentation and Help Mailing Lists Web sites Latest source code Bug reports Developer information L

Geoscience Australia 147 Dec 14, 2022
An interactive explorer for single-cell transcriptomics data

an interactive explorer for single-cell transcriptomics data cellxgene (pronounced "cell-by-gene") is an interactive data explorer for single-cell tra

Chan Zuckerberg Initiative 424 Dec 15, 2022
Data intensive science for everyone.

InVesalius InVesalius generates 3D medical imaging reconstructions based on a sequence of 2D DICOM files acquired with CT or MRI equipments. InVesaliu

Galaxy Project 1k Jan 08, 2023
Kedro is an open-source Python framework for creating reproducible, maintainable and modular data science code

A Python framework for creating reproducible, maintainable and modular data science code.

QuantumBlack Labs 7.9k Jan 01, 2023
A framework for feature exploration in Data Science

Beehive A framework for feature exploration in Data Science Background What do we do when we finish one episode of feature exploration in a jupyter no

Steven IJ 1 Jan 03, 2022
An open-source application for biological image analysis

CellProfiler is a free open-source software designed to enable biologists without training in computer vision or programming to quantitatively measure

CellProfiler 734 Jan 08, 2023
Datamol is a python library to work with molecules

Datamol is a python library to work with molecules. It's a layer built on top of RDKit and aims to be as light as possible.

datamol 276 Dec 19, 2022
Python Data Science Handbook: full text in Jupyter Notebooks

Python Data Science Handbook This repository contains the entire Python Data Science Handbook, in the form of (free!) Jupyter notebooks. How to Use th

Jake Vanderplas 36.9k Dec 28, 2022
Wikidata scholarly profiles

Scholia is a python package and webapp for interaction with scholarly information in Wikidata. Webapp As a webapp, it currently runs from Wikimedia To

Finn Årup Nielsen 180 Dec 28, 2022
Efficient Python Tricks and Tools for Data Scientists

Why efficient Python? Because using Python more efficiently will make your code more readable and run more efficiently.

Khuyen Tran 944 Dec 28, 2022
Open Delmic Microscope Software

Odemis Odemis (Open Delmic Microscope Software) is the open-source microscopy software of Delmic B.V. Odemis is used for controlling microscopes of De

Delmic 32 Dec 14, 2022
A computer algebra system written in pure Python

SymPy See the AUTHORS file for the list of authors. And many more people helped on the SymPy mailing list, reported bugs, helped organize SymPy's part

SymPy 9.9k Jan 08, 2023
Metaflow is a human-friendly Python/R library that helps scientists and engineers build and manage real-life data science projects

Metaflow Metaflow is a human-friendly Python/R library that helps scientists and engineers build and manage real-life data science projects. Metaflow

Netflix, Inc. 6.3k Jan 03, 2023
A mathematica expression evaluator with PokemonTypes

A simple mathematical expression evaluator that uses Pokemon types to replace symbols.

Arnav Jindal 2 Nov 14, 2021
CoCalc: Collaborative Calculation in the Cloud

logo CoCalc Collaborative Calculation and Data Science CoCalc is a virtual online workspace for calculations, research, collaboration and authoring do

SageMath, Inc. 1k Dec 29, 2022
3D visualization of scientific data in Python

Mayavi: 3D visualization of scientific data in Python Mayavi docs: http://docs.enthought.com/mayavi/mayavi/ TVTK docs: http://docs.enthought.com/mayav

Enthought, Inc. 1.1k Jan 06, 2023
A flexible package manager that supports multiple versions, configurations, platforms, and compilers.

Spack Spack is a multi-platform package manager that builds and installs multiple versions and configurations of software. It works on Linux, macOS, a

Spack 3.1k Dec 31, 2022
OPEM (Open Source PEM Fuel Cell Simulation Tool)

Table of contents What is PEM? Overview Installation Usage Executable Library Telegram Bot Try OPEM in Your Browser! MATLAB Issues & Bug Reports Contr

ECSIM 133 Jan 04, 2023