在Julia中标记和指定直方图中的箱子

在Julia中标记和指定直方图中的箱子,julia,histogram,Julia,Histogram,我想在朱莉娅身上画一个柱状图。为了便于说明,在下面的示例中,我绘制了age,范围从0到100 age = 100*rand(1000,1) histogram(age, xlabel = "Age", bins = range(0,100, step = 5), xticks = 0:5:100, leg = false) 理想情况下,我希望: 让第一个bin包含所有小于20的值,最后一个bin包含所有大于60的值。其他箱子应如上所述,step=5

我想在朱莉娅身上画一个柱状图。为了便于说明,在下面的示例中,我绘制了
age
,范围从
0到100

age = 100*rand(1000,1)
histogram(age, xlabel = "Age", bins = range(0,100, step = 5),
            xticks = 0:5:100, leg = false)
理想情况下,我希望:

  • 让第一个bin包含所有小于20的值,最后一个bin包含所有大于60的值。其他箱子应如上所述,
    step=5

  • 能够标记垃圾箱,尤其是具有
    <20
    >60
    的垃圾箱


  • 有什么方法可以做到这一点吗?

    我假设您使用的是
    绘图
    绘图软件包(最好在您的问题中明确说明这一点,因为Julia中有许多具有不同语法和功能的成熟绘图软件包)

    对于第一个问题,对年龄向量进行钳制非常有用,这样20以下的所有值都设置为19,60以上的所有值都设置为61

    关于第二点,您只需显式设置
    xtick
    包括标签:

    julia> histogram(clamp.(age, 19, 61), bins = 10; xlabel = "Age", leg = false,
                     xticks = ([17.5; 20:5:60; 62.5], ["<20"; 20:5:60; ">60"]), xrot = 45)
    
    julia>直方图(钳形)(年龄,19,61),bin=10;xlabel=“年龄”,leg=false,
    xticks=([17.5;20:5:60;62.5],“60”),xrot=45)
    
    给出:


    我可能更喜欢
    bin=[0,20:5:60…,100]
    而不是
    clamp
    这是我最初做的,问题是0-20的bin实际上从0变为20。这可能是最好的,也可能不是最好的,从视觉上看,我更喜欢
    clamp
    方法。