Quantcast
Channel: First steps - JuliaLang
Viewing all articles
Browse latest Browse all 2795

3d histogram plot with PGFPlotsX and StatsBase

$
0
0

Hi,

I would like to do something similiar like this

with PGFPlotsX. I´m a newbie in plotting with PGFPlotsX. I tried to it analogously like the example.

I use StatsBase for plotting the histogram.

Here first the code of a 2d histogram.

using Random
using Distributions
using PGFPlotsX
using Plots
plotly()
using StatsBase: fit
using StatsBase: Histogram


dists = [randn(1000, 1) for i in 1:4]

# create axis
axis = @pgf Axis(
    {
        grid = "both",
        xmax = maximum(dists[1]),
        xmin = minimum(dists[1]),
        xlabel="x",
        ylabel="y",
        xtick = collect(round(minimum([minimum(dists[i])  for i in 1:length(dists)]), digits=1):0.5:round(maximum([maximum(dists[i])  for i in 1:length(dists)]), digits=1)),
        ytick = collect(0:20:100),
        xticklabel = raw"$\pgfmathprintnumber\tick$",
        "xticklabel style" =
        {
            "rotate"=90,
            "anchor"="east",
            font = raw"\tiny"
        },
    },
)


# draw histogram
hist1 = @pgf Plot(
    {
    fill_opacity = 0.65,
    color = "blue",
    fill = "blue",
    "ybar interval"
    },
    Table(fit(Histogram, vec(dists[1]), closed = :left, nbins=40)))

push!(axis, hist1)

# draw red line
line = @pgf Plot(
        {
            color = "red",
            style ="{dashed}"
        },
        Coordinates(
            [
                (0.25, 0),
                (0.25, 100),

            ]
        )
)
push!(axis, line)

#save plot
path = (@__DIR__) * raw"\histogram.tex"
pgfsave(path, axis, include_preamble=true, dpi=150)

When I would like to plot it in a 3d graph, then I think, that I´ve to extract the values of the histogram for my x- and y-axis of the Table in the 3d plot to plot it analogously like the 3d waterfall example .

curve = Plot3(
            {
                no_marks,
                style = {thick},
                color = "blue"
            },
#######################################
            Table(x = x_pnts,
                  y = (length(dists) - i) * ones(length(x_pnts)),
                  z = dat_pdf[i](x_pnts))
#######################################
        )

Does somebody know how to do it or has an alternative?

1 post - 1 participant

Read full topic


Viewing all articles
Browse latest Browse all 2795

Trending Articles