Comments (5)
I guess that the first step is creating a new canvas type (Name t.b.d. <: LookupCanvas
), similar to https://github.com/JuliaPlots/UnicodePlots.jl/blob/master/src/canvas/blockcanvas.jl#L7-L23, with an adjusted lookup table.
from unicodeplots.jl.
Started fork at jhidding/UnicodePlots.jl.
from unicodeplots.jl.
Great, I wasn't aware of the extra Symbols for Legacy Computing block of Unicode
.
UnicodePlots
is definitively the right place for this kind of addition.
Even if we use opaque characters instead of braille characters, this could be our implementation for the missing contourf
(or maybe contourplot
with a filled
kwarg).
Could also be useful for drawing polar heatmaps: I wonder if it's possible to render a perfect circle using these characters.
I like this ;)
from unicodeplots.jl.
Great, I would for the moment (subject to evolution) hijack contourplot
by replacing this line with something like:
if canvas === FilledCanvas
# TODO: process levels, and fill the canvas
# Note that displaying the characters is not done here (delayed to using `show`, `display` or `savefig` on the plot)
# and that is handled in `src/show.jl`: https://github.com/JuliaPlots/UnicodePlots.jl/blob/master/src/show.jl#L301
# There, each canvas row is printed: since `FilledCanvas` is a subtype of the abstract type `LookupCanvas`,
# `lookup_decode` must be implemented such that decoding can occur in here:
# https://github.com/JuliaPlots/UnicodePlots.jl/blob/master/src/canvas/lookupcanvas.jl#L75
# I would suggest taking inspiration from `src/interface/heatmap.jl` for filling the grid and colors:
# https://github.com/JuliaPlots/UnicodePlots.jl/blob/master/src/interface/heatmap.jl#L192-L196
else
contourplot!(plot, x, y, A; colormap, okw...) # other canvases (BrailleCanvas, ...)
end
plot
, so that you can work your mwe out (TIL himmelblau):
julia> using UnicodePlots
julia> himmelblau(x, y) = (x^2 + y - 11)^2 + (x + y^2 - 7)^2
julia> contourplot(himmelblau; canvas = FilledCanvas, levels = ...) # would need to adjust `levels` kw to take a vector of levels
It's unlikely a miracle will happen but that's a start ...
You can also open a draft PR
here so that it would be easier to review and add comments.
from unicodeplots.jl.
Also note that filling FILLED_DECODE[(N_FILLED + 1):typemax(N_FILLED)] = UNICODE_TABLE[1:(typemax(N_FILLED) - N_FILLED)]
is un-needed since for this canvas, since we don't plan to add other characters than those from the Symbols for Legacy Computing
block (the whole canvas will be filled, and colored).
This means that the FilledCanvas.grid
s eltype
can probably be restricted to UInt8
: grid::Transpose{UInt8,Matrix{UInt8}}
as what is currently done for the HeatmapCanvas.
from unicodeplots.jl.
Related Issues (20)
- ERROR: InexactError: trunc(Int64, -Inf) when plotting values with big differences in magnitude HOT 4
- switch to `Documenter` based docs ?
- support polar heatmap
- invert matrix when using heatmap HOT 3
- Heatmap colorbar with non-finite values HOT 3
- Import latency issue HOT 4
- Backend example of PlotDocs broken HOT 3
- Request: Leverage package extensions HOT 7
- redefinition warnings and error on exit when using with CairoMakie HOT 14
- [FR] try to remove the `StaticArrays` dependency
- Plot border and axis markers are the same color as background HOT 5
- histogram not defined HOT 6
- [FR] swap `lineplot` function order
- [FR] log transformed bins in histogram HOT 1
- Despite Project.toml update, StatsBase 0.34 is not compatible with UnicodePlots 3.5.2 HOT 3
- Error when using Uniful together with ylim
- Can I use UnicodePlots.jl by launching Julia script via command line (not in REPL mode) HOT 3
- Heatmap handling of NaN HOT 4
- Add way to autolimit a plot that has been added to HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from unicodeplots.jl.