15 KiB
15 KiB
Plots.jl NEWS
notes on release changes, ongoing development, and future planned work
- All new development should target 0.12!
- Minor version 0.11 is the last one to support Julia 0.5!!
- Critical bugfixes only
backportsbranch is for Julia 0.4
0.11 (current master/dev)
0.11.0
- julia 0.6 compatibility
- matplotlib 0.2.0 compatibility
- add inspectdr backend
- improved histogram functionality:
- added a
:stephistand:scatterhistseries type as well as ``:barhist` (the default) - support for log scale axes with histograms
- support for plotting
StatsBase.Histogram - allowing bins to be specified as
:sturges,:rice,:scottor :fd - allow
normalizationto be specified as :density (for unequal bins) or :pdf (sum to 1) - add a
plotattrfunction to access documentation for Plots attribute - add
fill_zattribute for pyplot - add colorbar_title to plotlyjs
- enable standalone window for plotlyjs
- improved support for pgfplots, ticks rotation, clims, series_annotations
- restore colorbars for GR
- better axis labels for heatmap in GR
- better marker sizes in GR
- fix color representation in GR
- update GR legend
- fix image bug on GR
- fix glvisualize dependencies
- set dotted grid lines for pyplot
- several improvements to inspectdr
- improved tick positions for TimeType x axes
- support for improved color gradient capability in PlotUtils
- add a showlibrary recipe to display color libraries
- add a showgradient recipe to display color gradients
- add
vectorfieldas an alias forquiver - use
PlotUtils.adaptedgridfor functions
0.9.5
- added dependency on PlotThemes
- set_theme --> theme
- remove Compat from REQUIRE
- warning for DataFrames without StatPlots
- closeall exported and implemented for gr/pyplot
- fix DateTime recipe
- reset theme with theme(:none)
- fix link_axes! for nested subplots
- fix plotly lims for log scale
0.9.4
- optimizations surrounding Subplot.series_list
- better Atom support, support plotlyjs
- gr:
- gks_wstype defaults and gr_set_output
- heatmap uses GR.drawimage
- histogram2d puts NaN for zeros
- improved support of NaN in heatmaps
- rebuilt spy recipes to output scatters with marker_z set
- deprecate png support in plotly... point to plotlyjs
- fixes:
- axis widen with lims set
- reset_extrema, setxyz
- bar plot widen
- better tick padding
- consistent tick rotation
- consistent aspect_ratio
- pyplot dpi
- plotly horizontal bars
- handle series attributes when combining subplots
- gr images transposed
- converted Date/DateTime to new type recipe approach for arrays
- issues closed include: #505 #513 #479 #523 #526 #529
0.9.3
- support pdf and eps in plotlyjs backend
- allow curly after grid:
@layout [a b; grid(4,4){0.8h}] - add_backend redesign
0.9.2
- glvisualize backend (@SimonDanisch)
- too much to list! ready for alpha testing
- Volume and volume seriestype
- Atom: support for PlotPane and proper gui display
- gr:
- clims
- aspect ratio
- pgfplots:
- fixes for ticks, axes, and more
- pyplot:
- font families
- colorbar guide
- pixel marker
- unicodeplots
- basic support for shapes
- improved add_backend
- refactor of is_supported methods
- element-wise type recipes (see https://github.com/tbreloff/Plots.jl/issues/460#issuecomment-248428908)
- several other fixes/improvements
0.9.1
- Pkg.dir --> dirname (@tkelman)
axis = nothingmagic- fixes:
- clim for line_z
- sticks default range for log scale
- rotate method
- pyplot heatmap
- spurious scale warnings
- gr image/alpha
- plotly.js path
- orientation extrema
- bar, reset orientation
- switch transpose_z to use permutedims
- skinny x/+ markers
- ticks in pgfplots
- eps in savefig (@anriseth)
- add_backend convenience
- type recipes for Date/DateTime (@maximsch2)
- mirror attribute and twinx convenience
- Axis.sp --> Axis.sps
- recipe postprocessing for allowing aliases and magic args in recipe bodies
0.9.0
- fixes to cycle
- add back single function recipe:
plot!(cos) - new axis formatter attribute... accepts functions to convert numbers to strings
- fix for inset plots
- GR:
- fillrange fix
- annotations fix
- force double buffering in display
0.8
0.8.2 (backported bug fixes for julia 0.4)
- plotly ticks fix
- unicodeplots size fix
- remove mkdir call in tests
0.8.1
- manual drawing of axes/ticks/labels
- get_ticks uses optimize_ticks and Showoff
- changed PLOTS_DEFAULTS to be a global variable, not ENV key
- parameterized Segments for pushing tuples
- fix to axis extrema for Bool/nothing
- GR:
- manually draw 2D axes... fixes several issues and missing features
- fontsize fix
- PGFPlots: pass axis syle
0.8.0
- added dependency on PlotUtils
- BREAKING: removed DataFrames support (now in StatPlots.jl)
- BREAKING: removed boxplot/violin/density recipes (now in StatPlots.jl)
- GR:
- inline iterm2 support
- trisurface support
- heatmap fix
- PyPlot:
- ijulia display fix
- GLVisualize:
- first try with shapes
- iter_segments improvements
- bar_width support
- horizontal bars
- improve tick display
- better shape handling in pyplot, plotly
- improved padding calcs
- internal reorg of _plots method, add pipeline.jl
0.7
0.7.5
- GR: LaTeX support
- Changed docs url to juliaplots.github.io
- added
contourfseriestype - allow
plt[1]to return first Subplot - allow
sp[1]to return the first Series of the Subplot series[k]now passes through toseries.d[k]- allow calling
plot!(sp, ...)to update a target Subplot - PyPlot: zorder fix
- new DataFrames logic/recipe: more flexible/robust and allow Symbols for:
(:fillrange, :line_z, :marker_z, :markersize, :ribbon, :weights, :xerror, :yerror)
- new
display_typeandextra_kwargsplot attributes - surface fix
0.7.4
- added snooped precompiles, but left commented out
- GR fixes: markersize, shapes, legends
- fixes to recipes
- turned on Appveyor
0.7.3
- rebuild violin and boxplot recipes
- "plot recipes"
cgradmethod for easy color gradient creation- improvements to inset subplots
- Segments and iter_segments for NaN-separated vectors
barrecipe now creates ashapeseries- writemime fix for Interact.jl
link = :squareoption- !!! set
shapeattributes with line/fill, NOT marker/markerstroke !!! - basic DPI support
- moved chorddiagram to PlotRecipes
- GR:
- use temp files for img output
- basic support for marker strokes and other marker fixes
- PyPlot:
- Switch to recipes for bar, histogram, histogram2d
- GLVisualize
- subplots
- path/scatter and path3d/scatter3d
- initial drawing of axes
- many smaller fixes and improvements
0.7.2
- line_z arg for multicolored line segments
- pyplot
- line_z (2d and 3d)
- pushed all fig updates into display pipeline
- remove native sticks/hline/vline in favor of recipes
- unicodeplots cleanup, ijulia fixes, ascii canvas
curvesseries typeiter_segmentsiterator- moved arcdiagram out and into PlotRecipes (thanks @diegozea)
- several other fixes/checks
0.7.1
- inset (floating) subplots
- change: when setting subplot/axis args from user recipes, they should apply only to their own subplot
- trim for violin/boxplot
- scatter3d recipe
- removed plotly.js in favor of build.jl download
- improvements/fixes to pgfplots backend
- improvements/fixes to plotly/plotlyjs backends
- titles are annotations and properly placed with title_position
- hover attribute
- shapes (almost)
- scattergl
- minimum perimeter logic in layout calc... fixed misaligned subplots
- new clims attribute
- more options for test_examples
- GR refactor
- added transparency
- moved axis/grid logic out of series loop
- generalized 3d and polar projections
- renamed get_mod to Base.cycle
- pyplot log scale fixes
- PLOTS_DEFAULTS environment var processing
- rename :ellipse to :circle, :ellipse is now an alias
- supported args/types cleanup
- seriestype dependency methods and
@depsmacro - bbox
h_anchor/v_anchor - new axis arg:
:linkis a list of subplots to link axes with - cleanup/simplification of glvisualize backend
0.7.0
- Check out the summary
- Revamped and simplified internals
- Recipes, recipes, recipes
- Layouts and Subplots
- DataFrames is loaded automatically when installed
- Overhaul to GroupBy mechanic (now offloads to a recipe)
- Replaced much of the argument processing with recipes
- Added series recipes, and began to strip down un-needed backend code. Some recipes:
- line, step, sticks, bar, histogram, histogram2d, boxplot, violin, quiver, errorbars, density, ohlc
- Added
@shorthandsand@userplotmacros for recipe convenience - Better handling of errorbars and ribbons
- New Axis type
- Tracks extrema and discrete values
- New
link_axesfunctionality
linetypehas been renamedseriestype(the alias is reversed)- Many fixes and huge cleanup in GR
- Brand new subplot layout mechanics:
@layoutmacro- AbstractLayout, Subplot, GridLayout, and everything related
- Added dependency on Measures.jl
- Computations of axis/guide sizes and precise positioning
- Refactored and compartmentalized default dictionaries for attributes
- Deprecated Gadfly and Immerse backends
- Added
series_annotationsattribute (previously that functionality was merged withannotations, which are not series-specific) - Removed
axisattribute... currently not supporting twin (right) y axes - Check for
ENV["PLOTS_USE_ATOM_PLOTPANE"]and default to false - Improved backend interface to reduce redundant code. Template updated.
- Added
html_output_format, primarily for choosing between png and svg output in IJulia. - Partial support of Julia v0.5
- Switched testing to dump reference images to JuliaPlots/PlotReferenceImages.jl
- Moved docs-specific code to new JuliaPlots/PlotDocs.jl
- Moved example list from ExamplePlots into Plots.
- Added several examples and improved others.
- Many other smaller changes and bug fixes.
Version 0.6
0.6.2
linewidthfixesmarkershapefix- converted center calc to centroid for shapes
- new dependency on RecipesBase
- REQUIRE upper limit for RecipesBase: 0.0.1
- GR fixes/improvements (@jheinen)
- support
zlims,bins - allow Plots colormaps
- other bug fixes
- native image support
- support
- PGFPlots fixes/improvements (@pkofod)
- DataFrames are handled by recipes
- Plotly: zaxis, tick rotation, 3d axis fix
- Improvements in handling discrete data
- Support for image display
arrowkeyword and support for adding arrows to paths- changed quiver recipe to use arrows
- Bug fixes for boxplots, heatmaps, and more
0.6.1
rotationkeyword- improved supported graphs
- subplot bug fix
0.6.0
apply_series_recipeframework for built-in recipes- boxplot/violin recipes
- errorbar/ribbon recipes
- quiver recipe
polarcoordinates- better support for shapes and custom polygons (see batman)
- z-axis keywords
- 3D indexing overhaul:
push!,append!support - matplotlib colormap constants (
:infernois the new default colormap for Plots) typealias KW Dict{Symbol,Any}used in place of splatting in many places- png generation for plotly backend using wkhtmltoimage
normalizeandweightskeywords- background/foreground subcategories for fine-tuning of looks
add_theme/set_themeand ggplot2 theme (see this issue)PLOTS_DEFAULT_BACKENDenvironment variablebarhlinetype- support for non-gridded surfaces with pyplot's trisurface
- pyplot surface zcolor
- internal refactor of supported.jl
wrapmethod to bypass input processingtranslate,scaleandrotatemethods for coordinates and shapes- and many more minor fixes and improvements
Version 0.5
0.5.4
- old heatmaps have been renamed to hist2d, and true heatmaps implemented (see https://github.com/tbreloff/Plots.jl/issues/147)
- lots of reorganization and redesign of the internals
- lots of renaming to keep to conventions: AbstractPlot, AbstractBackend, etc
- initial redesign of layouts
- integration with Atom PlotPane
- arc diagram and chord diagram (thanks to @diegozea: see https://github.com/tbreloff/Plots.jl/issues/163)
- work on GR, GLVisualize, and PGFPlots backends (thanks @jheinen @dlfivefifty @pkofod)
- improvements to Plotly setup (thanks @spencerlyon2)
- overhaul to series creation logic and groupby mechanic
- replace Dict with
typealias KW Dict{Symbol,Any}in many places, also replacing keyword arg splatting - new
shapelinetype for plotting polygons in plot-coordinates (see https://github.com/tbreloff/ExamplePlots.jl/blob/master/notebooks/batman.ipynb) - many other fixes
0.5.3
@gifmacro withevery/whensyntax- bezier curves and other graph drawing helpers
- added FixedSizeArrays dependency with relevant functionality
- merged lots of improvements to GR (thanks @jheinen)
overwrite_figure/reusearg for reusing the same figure window- deprecated Qwt, Winston, and Bokeh backends
- improved handling of 3D inputs (call
z=rand(10,10); surface(z)for example) - fix IJulia display issue
- lots of progress on PlotlyJS backend
- and many other changes and fixes...
0.5.2
- Added GR.jl as a backend (unfinished but functional) All credit to @jheinen
- Set defaults within backend calls (i.e.
gadfly(legend=false)) abline!; also extrema allows plotting functions without giving x (i.e.plot(cos, 0, 10); plot!(sin)) @pkofod @joshday- Integration with PlotlyJS.jl for using Plotly inside a Blink window @spencerlyon2
- The Plotly backend has been split into my built-in version (
plotly()) and @spencerlyon2's backend (plotlyjs()) - Revamped backend setup code for easily adding new backends
- New docs (WIP) at http://juliaplots.github.io/
- Overhaul to
:legendkeyword (see https://github.com/tbreloff/Plots.jl/issues/135) - New dependency on Requires, allows auto-loading of DataFrames support
- Support for plotting lists of Tuples and FixedSizeArrays
- new
@animatemacro for super simple animations (see https://github.com/tbreloff/Plots.jl/issues/111#issuecomment-181515616) - allow Function for
:fillrangeandzcolorarguments (for example:scatter(sin, 0:10, marker=15, fill=(cos,0.4), zcolor=sin)) - allow vectors of PlotText without x/y coords (for example:
scatter(rand(10), m=20, ann=map(text, 1:10))) - Lots and lots of fixes
0.5.1
0.5.0
withfunction for temporary defaults- contours
- basic 3D plotting
- preliminary support for Bokeh
strokeandbrushfor more fine-tuned control over visuals- smarter "magic" arguments:
line,marker