add warning - enhance example
This commit is contained in:
parent
81170b4342
commit
f5e6ae9f98
@ -524,7 +524,7 @@ function gr_draw_colorbar(cbar::GRColorbar, sp::Subplot, clims, viewport_plotare
|
|||||||
levels = _cbar_unique(contour_levels.(series, Ref(clims)), "levels")
|
levels = _cbar_unique(contour_levels.(series, Ref(clims)), "levels")
|
||||||
# GR implicitly uses the maximal z value as the highest level
|
# GR implicitly uses the maximal z value as the highest level
|
||||||
if levels[end] < clims[2]
|
if levels[end] < clims[2]
|
||||||
@warn("GR: highest contour level less than maximal z value is not supported.")
|
@warn "GR: highest contour level less than maximal z value is not supported."
|
||||||
# replace levels, rather than assign to levels[end], to ensure type
|
# replace levels, rather than assign to levels[end], to ensure type
|
||||||
# promotion in case levels is an integer array
|
# promotion in case levels is an integer array
|
||||||
levels = [levels[1:end-1]; clims[2]]
|
levels = [levels[1:end-1]; clims[2]]
|
||||||
@ -1832,7 +1832,7 @@ function gr_draw_contour(series, x, y, z, clims)
|
|||||||
h = gr_contour_levels(series, clims)
|
h = gr_contour_levels(series, clims)
|
||||||
if series[:fillrange] !== nothing
|
if series[:fillrange] !== nothing
|
||||||
if series[:fillcolor] != series[:linecolor] && !is_lc_black
|
if series[:fillcolor] != series[:linecolor] && !is_lc_black
|
||||||
@warn("GR: filled contour only supported with black contour lines")
|
@warn "GR: filled contour only supported with black contour lines"
|
||||||
end
|
end
|
||||||
GR.contourf(x, y, h, z, series[:contour_labels] == true ? 1 : 0)
|
GR.contourf(x, y, h, z, series[:contour_labels] == true ? 1 : 0)
|
||||||
else
|
else
|
||||||
@ -1863,6 +1863,7 @@ function gr_draw_surface(series, x, y, z, clims)
|
|||||||
GR.setfillcolorind(0)
|
GR.setfillcolorind(0)
|
||||||
GR.surface(x, y, z, get(e_kwargs, :display_option, GR.OPTION_FILLED_MESH))
|
GR.surface(x, y, z, get(e_kwargs, :display_option, GR.OPTION_FILLED_MESH))
|
||||||
elseif st === :mesh3d
|
elseif st === :mesh3d
|
||||||
|
@warn "GR: mesh3d is experimental (no face colors)"
|
||||||
conn = series[:connections]
|
conn = series[:connections]
|
||||||
if typeof(conn) <: Tuple{Array, Array, Array}
|
if typeof(conn) <: Tuple{Array, Array, Array}
|
||||||
ci, cj, ck = conn
|
ci, cj, ck = conn
|
||||||
@ -1872,25 +1873,25 @@ function gr_draw_surface(series, x, y, z, clims)
|
|||||||
else
|
else
|
||||||
throw(ArgumentError("Argument connections has to be a tuple of three arrays."))
|
throw(ArgumentError("Argument connections has to be a tuple of three arrays."))
|
||||||
end
|
end
|
||||||
xx = zeros(eltype(x), 4length(ci))
|
X = zeros(eltype(x), 4length(ci))
|
||||||
yy = zeros(eltype(y), 4length(cj))
|
Y = zeros(eltype(y), 4length(cj))
|
||||||
zz = zeros(eltype(z), 4length(ck))
|
Z = zeros(eltype(z), 4length(ck))
|
||||||
@inbounds for I ∈ 1:length(ci)
|
@inbounds for I ∈ 1:length(ci)
|
||||||
i = ci[I] + 1 # connections are 0-based
|
i = ci[I] + 1 # connections are 0-based
|
||||||
j = cj[I] + 1
|
j = cj[I] + 1
|
||||||
k = ck[I] + 1
|
k = ck[I] + 1
|
||||||
m = 4(I - 1) + 1; n = m + 1; o = m + 2; p = m + 3
|
m = 4(I - 1) + 1; n = m + 1; o = m + 2; p = m + 3
|
||||||
xx[m] = xx[p] = x[i]
|
X[m] = X[p] = x[i]
|
||||||
yy[m] = yy[p] = y[i]
|
Y[m] = Y[p] = y[i]
|
||||||
zz[m] = zz[p] = z[i]
|
Z[m] = Z[p] = z[i]
|
||||||
xx[n] = x[j]
|
X[n] = x[j]
|
||||||
yy[n] = y[j]
|
Y[n] = y[j]
|
||||||
zz[n] = z[j]
|
Z[n] = z[j]
|
||||||
xx[o] = x[k]
|
X[o] = x[k]
|
||||||
yy[o] = y[k]
|
Y[o] = y[k]
|
||||||
zz[o] = z[k]
|
Z[o] = z[k]
|
||||||
end
|
end
|
||||||
GR.polyline3d(xx, yy, zz)
|
GR.polyline3d(X, Y, Z)
|
||||||
else
|
else
|
||||||
throw(ArgumentError("Not handled !"))
|
throw(ArgumentError("Not handled !"))
|
||||||
end
|
end
|
||||||
|
|||||||
@ -998,33 +998,37 @@ const _examples = PlotExample[
|
|||||||
end]
|
end]
|
||||||
),
|
),
|
||||||
PlotExample( # 47
|
PlotExample( # 47
|
||||||
"Mesh3d",
|
"Mesh3d",
|
||||||
"""
|
"""
|
||||||
Allows to plot arbitrary 3d meshes. If only x,y,z are given the mesh is generated automatically.
|
Allows to plot arbitrary 3d meshes. If only x,y,z are given the mesh is generated automatically.
|
||||||
You can also specify the connections using the connections keyword.
|
You can also specify the connections using the connections keyword.
|
||||||
The connections are specified using a tuple of vectors. Each vector contains the 0-based indices of one point of a triangle,
|
The connections are specified using a tuple of vectors. Each vector contains the 0-based indices of one point of a triangle,
|
||||||
such that elements at the same position of these vectors form a triangle.
|
such that elements at the same position of these vectors form a triangle.
|
||||||
""",
|
""",
|
||||||
[
|
[
|
||||||
:(
|
:(
|
||||||
begin
|
begin
|
||||||
# specify the vertices
|
# specify the vertices
|
||||||
x=[0, 1, 2, 0]
|
x=[0, 1, 2, 0]
|
||||||
y=[0, 0, 1, 2]
|
y=[0, 0, 1, 2]
|
||||||
z=[0, 2, 0, 1]
|
z=[0, 2, 0, 1]
|
||||||
|
|
||||||
# specify the triangles
|
# specify the triangles
|
||||||
# every column is one triangle,
|
# every column is one triangle,
|
||||||
# where the values denote the indices of the vertices of the triangle
|
# where the values denote the indices of the vertices of the triangle
|
||||||
i=[0, 0, 0, 1]
|
i=[0, 0, 0, 1]
|
||||||
j=[1, 2, 3, 2]
|
j=[1, 2, 3, 2]
|
||||||
k=[2, 3, 1, 3]
|
k=[2, 3, 1, 3]
|
||||||
|
|
||||||
# the four triangles gives above give a tetrahedron
|
# the four triangles gives above give a tetrahedron
|
||||||
mesh3d(x,y,z;connections=(i,j,k))
|
mesh3d(
|
||||||
end
|
x, y, z; connections=(i, j, k),
|
||||||
),
|
title="triangles", xlabel="x", ylabel="y", zlabel="z",
|
||||||
],
|
legend=:none, margin=2Plots.mm
|
||||||
|
)
|
||||||
|
end
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
PlotExample( # 48
|
PlotExample( # 48
|
||||||
"Vectors of markershapes and segments",
|
"Vectors of markershapes and segments",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user