203 Commits

Author SHA1 Message Date
Giorgio Calderone
9001d5f385 Minor changes in preparation of v1.4.1 2022-01-04 12:06:01 +01:00
Giorgio Calderone
919068e797 Merge branch 'master' of https://github.com/gcalderone/Gnuplot.jl 2022-01-03 13:34:33 +01:00
gcalderone
23c3d663e8
Merge pull request #51 from wentasah/stdout-via-pipe
Don't run gnuplot process connected to stdout
2022-01-03 13:34:25 +01:00
Giorgio Calderone
3f40e38d72 Merge branch 'master' of https://github.com/gcalderone/Gnuplot.jl 2022-01-03 12:41:12 +01:00
gcalderone
443ef0edf7
Merge pull request #49 from wentasah/hist-bounds
Fix BoundsErrors in hist()
2022-01-03 12:40:40 +01:00
Michal Sojka
ce00617796 Allow using single quotes in output file names
Gnuplot single-quoted strings have to escape single-quote characters
by doubling them.
2021-12-13 18:58:24 +01:00
Giorgio Calderone
e70c30dd13 Handle the case where an implicit recipe returns a Vector{PlotElement} 2021-12-05 15:59:48 +01:00
Michal Sojka
d02c211e99 Don't run gnuplot process connected to stdout
This change fixes incompatibility of Gnuplot.jl with Documenter.jl
versions 0.27.0 and above. Without this change, Gnuplot.jl has at
least these problems:

1. When building Gnuplot.jl documentation, the process blocks and
   never finishes.

2. When using Gnuplot.jl in docstrings in other code, running
   `doctest` blocks and never finishes.

The reason is that Documenter uses a new version of IOCapture.jl,
which contains this commit:
6cb4cdff34.

Documenter evaluates code snippets from the documentation with
`stdout` redirected to a pipe to show the command's output. The
mentioned commit changes the behavior so that now capturing waits
until the pipe is closed. The problem with Gnuplot.jl is that when the
gnuplot process is started as a part of the execution of documentation
code snippet, its `stdout` is bound to Documenter's pipe. The pipe is
not closed until the gnuplot process exits, which does not happen
unless the code snippet calls `Gnuplot.quit` explicitly. Therefore
Documenter blocks indefinitely.

This can be demonstrated by storing the following code in `test.jl`

    module GnuplotDocTest
    """
    ```jldoctest; setup = :(using Gnuplot)
    julia> @gp rand(100)

    ```
    """
    test() = nothing
    end

    using Documenter
    doctest(pwd(), [GnuplotDocTest])

and running `julia test.jl`.

To fix this problem, we run the gnuplot process with stdout redirected
to a pipe and create an asynchronous task, which reads the gnuplot's
stdout and writes it to Julia's current stdout.

Correctness of this approach can be verified by running:

    using Gnuplot
    Gnuplot.options.term = "dumb"
    @gp "plot sin(x)"

Dumb terminal prints to stdout and the above command shows the graph
on Julia's stdout too. In the next commit, we add the above code as a
doctest.
2021-12-05 11:51:29 +01:00
Michal Sojka
67c8781f2b Fix another hist BoundsError
This fixes the error with `hist([1,1,1], bs=1)`:

    ERROR: BoundsError: attempt to access 0-element Vector{Int64} at index [0]
    Stacktrace:
     [1] getindex
       @ ./array.jl:801 [inlined]
     [2] hist(v::Vector{Int64}; range::Vector{Float64}, bs::Int64, nbins::Int64, pad::Bool)
       @ Gnuplot ~/.julia/dev/Gnuplot/src/Gnuplot.jl:1864
     [3] top-level scope
       @ REPL[50]:1
2021-09-06 16:53:40 +02:00
Michal Sojka
db8dcfc433 Fix bounds error in hist recipe
When running hist([1,2,3], bs=2), the following error is produced:

ERROR: BoundsError: attempt to access 1-element Vector{Float64} at index [2]
Stacktrace:
 [1] getindex
   @ ./array.jl:801 [inlined]
 [2] hist(v::Vector{Int64}; range::Vector{Float64}, bs::Int64, nbins::Int64, pad::Bool)
   @ Gnuplot ~/.julia/dev/Gnuplot/src/Gnuplot.jl:1873
 [3] top-level scope
   @ REPL[25]:1
2021-09-06 16:53:40 +02:00
Giorgio Calderone
0567acc60e Bump version to 1.4.0 (to meet automerge guidelines) 2021-05-05 23:48:11 +02:00
Giorgio Calderone
53159f89e1 Bugfix; Allow missing as input to hist(); Updated version() 2021-05-05 11:59:15 +02:00
Giorgio Calderone
364e5281bd Merge branch 'master' of https://github.com/gcalderone/Gnuplot.jl 2021-05-05 00:53:09 +02:00
Giorgio Calderone
e8a6b21df6 Updated dependencies; Accept missing values on input arrays (if eltype <: AbstractFloat) 2021-05-05 00:52:56 +02:00
Michal Sojka
34af493921 Make the figures in VS Code bigger
Without this change, the figures in VS Code are too small.
2021-03-30 20:11:05 +02:00
Michal Sojka
f2ef5373b0 Show plots in internal VS Code plot pane
With this change, when Gnuplot.jl is used within VSCode, the plot
shows in VSCode plot pane instead of in a separate Gnuplot window.

Note that when compared to IJulia and Juno, we do not test for active
VS Code connection. I don't think it is necessary, but if it turns out
to be needed later, it can be done with

    isopen(VSCodeServer.conn_endpoint[])
2021-03-30 19:43:27 +02:00
Giorgio Calderone
bc74aa0db4 Accept AbstractArrays which can be converted to actual arrays 2021-01-02 00:15:39 +01:00
Giorgio Calderone
b7a15290d3 Bugfix 2020-10-06 10:21:46 +02:00
Giorgio Calderone
f62b569560 Fix #28 and similar issues 2020-10-05 01:14:18 +02:00
Jarvist Moore Frost
084dd63059 Add check for Pluto.jl interactive notebook. 2020-09-21 21:02:08 +01:00
Giorgio Calderone
83c59ae682 Set utf8 encoding on gnuplot start 2020-05-05 11:44:08 +02:00
Adam Lyon
67a5583c29 Fixes #25 2020-05-04 15:59:21 -05:00
Adam Lyon
69644f99ba Fix #24 2020-05-04 15:58:59 -05:00
Giorgio Calderone
2c2c74e448 Added dgrid3d function 2020-04-29 12:12:52 +02:00
Giorgio Calderone
6bf1b80058 Bump version (1.3.0) 2020-04-28 19:26:23 +02:00
Giorgio Calderone
92380bc468 Added smooth keyword to palette; Updated docstrings 2020-04-28 14:14:25 +02:00
Giorgio Calderone
4d1768e15e Added contourlines method accepting top fractions 2020-04-27 18:37:59 +02:00
Giorgio Calderone
c9fa96c9eb Docs updated 2020-04-25 20:20:09 +02:00
Giorgio Calderone
d74715f156 Fixed initialization in Juno 2020-04-25 19:28:57 +02:00
Giorgio Calderone
2fb581b3a3 Defined and implemented the display behaviour (based on options/gpviewer) 2020-04-25 18:37:17 +02:00
Giorgio Calderone
190562a322 Use AbstractVector and AbstractMatrix argument types in contourlines 2020-04-23 09:57:16 +02:00
Giorgio Calderone
c5d64f5d76 Enable show mechanism, regardless of Juno/IJulia 2020-04-22 20:00:51 +02:00
Giorgio Calderone
4405daf088 Bugfix 2020-04-22 19:09:47 +02:00
Giorgio Calderone
8f737205a1 Improved readTask and capture protocol 2020-04-22 17:56:50 +02:00
Giorgio Calderone
8a8ce1f533 Stdout is no longer filtered 2020-04-22 14:39:52 +02:00
Giorgio Calderone
e687bb3716 Stdout is no longer filtered 2020-04-22 14:26:53 +02:00
Giorgio Calderone
00ef33a8a6 Stdout is no longer filtered 2020-04-22 14:26:06 +02:00
Giorgio Calderone
993633886a Test 2020-04-22 09:52:09 +02:00
Giorgio Calderone
c5890b6819 Implemented save() and show() based on Options.mime dictionary 2020-04-22 01:42:38 +02:00
Giorgio Calderone
b79228d7b1 Implemented show(io::IO, ::MIME"text/html" method 2020-04-21 10:33:29 +02:00
Giorgio Calderone
96874bcdae Release v1.2.0 2020-04-20 18:43:27 +02:00
Giorgio Calderone
e264b27119 Comments updated 2020-04-19 16:49:19 +02:00
Giorgio Calderone
45e97e4535 Minor changes 2020-04-19 10:48:02 +02:00
Giorgio Calderone
0a8c652e71 Docs updated 2020-04-18 15:10:19 +02:00
Giorgio Calderone
79ebe5d8ee Added recipe for IsoContourLines; contourlines now accepts a Histogram2D object 2020-04-18 13:24:12 +02:00
gcalderone
3e053c440f
Fix ci (#18)
* Updated

* Updated

* Updated

* Updated

* Updated

* Fix CI
2020-04-18 00:17:08 +02:00
Giorgio Calderone
31b60d61f2 Bugfix 2020-04-17 20:11:36 +02:00
Giorgio Calderone
7b0955e12a Updated svg default terminal (white bkg and dynamic) 2020-04-17 19:46:48 +02:00
Giorgio Calderone
05d887ac9d Send .term command at reset (to override .gnuplotrc) 2020-04-17 17:56:54 +02:00
Giorgio Calderone
7bff6fc9a7 Added term, term_png and term_svg fields in Options 2020-04-17 16:13:57 +02:00