Ali
Ali

Reputation: 502

setting point sizes when using Gadfly in Julia

In my attempts to practice Julia, I've made a program which draws a bifurcation diagram. My code is as follows:

function bifur(x0,y0,a=1.3,b=0.4,n=1000,m=10000)
    i,x,y=1,x0,y0
    while i < n && abs(x) < m
        x,y = a - x^2 + y, b * x
        i += 1
    end
    if abs(x) < m
        return x
    else
        return 1000
    end
end
la = Float64[];
lx = Float64[];
for a=0:400
    for j = 1:1000
        x0 = rand()
        y0 = rand()
        x = bifur(x0,y0,a/100)
        if x != 1000
            push!(la,a/100) 
            push!(lx,x)
        end
    end
end
using Gadfly
myplot = Gadfly.plot( x=la, y=lx , Scale.x_discrete, Scale.y_continuous, Geom.point)
draw(PNG("myplot.png",10inch,8inch),myplot)

The output I get is this image: enter image description here

In order to make my plot look more like this: enter image description here I need to be able to set point sizes to as small as one pixel. Then by increasing the iteration length I should be able to get a better bifurcation diagram. Does anyone know how to set the point sizes in Gadfly diagrams in Julia?

Upvotes: 7

Views: 2136

Answers (2)

Alex Ten
Alex Ten

Reputation: 85

If changing Theme values seems like too much, you can do it in the plot call directly. You need to provide an array of the same size as your x and y.

using Gadfly

x = rand(10)
y = rand(10)

p = plot(x=x, y=y, size=fill(2px, length(x)))

Upvotes: 1

rickhg12hs
rickhg12hs

Reputation: 11912

[Just to encapsulate the comments as an answer...]

Gadfly's Theme defaults can be changed. In particular, point_size is probably what you are looking for.

For changing the automatic plot scale/range settings, have a look at Gadfly's Scale params.

Upvotes: 6

Related Questions