微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将标签传递到Plots.jl直方图

如何解决将标签传递到Plots.jl直方图

我是Julia的新手,想知道如何将标签传递到Plots.jl包中的直方图函数

using Plots
gr()
histogram(
    data[:sentiment_labels],title = "Hstogram of sentiment labels",xlabel = "Sentiment",ylabel = "count",label = ["Negative" "Positive" "Neutral"],fillcolor = [:coral,:dodgerblue,:slategray]
)

图中只有第一个标签“ Negative”出现。

enter image description here

解决方法

因此,简单的答案是:由于绘图中只有一个数据系列,因此绘图中只有一个标签-直方图仅绘制一个数据系列,并附加了一个标签。您获得多种颜色但只有一个图例似乎有点不寻常,因此我将解释为什么发生这种情况,因为它对Plots.jl用户来说是有启发性的,并且经常引起混乱,

您正在绘制的条形图获得三种不同的颜色有点巧合。此处发生的是,您正在提供一个单独的color参数,该参数在直方图中的条形图中循环循环。如果您为histogram通话提供更多颜色,则可以看到以下内容:

using Plots

sentiment_labels = [fill(-1,200); fill(0,700); fill(1,100)]

histogram(
    sentiment_labels,fillcolor = [:coral,:red,:green,:dodgerblue,:slategray]
)

给予:

enter image description here

这是怎么回事?我们提供了五种颜色,事实证明您的直方图每五个增量只有一个小节(在-1、0和1之间有仓,在这些仓中只有零个观测值)。因此,每五个条形都具有相同的颜色,而零条形消失,则最终只能在图中看到一种颜色。

另一种查看方法是拥有比您的情感标签更连续的数据:

cont_data = rand(1_000)

histogram(
    cont_data,:slategray]
)

给予:

enter image description here

所以实际上这里只传递了一个颜色参数。 histogram调用中颜色和标签之间的关键区别在于,一个是行,另一个是列向量:

julia> ["Negative" "Neutral" "Positive"]
1×3 Array{String,2}:
 "Negative"  "Neutral"  "Positive"

julia> [:coral,:slategrey,:dodgerblue]
3-element Array{Symbol,1}:
 :coral
 :slategrey
 :dodgerblue

图将解释其中的第一个适用于三个不同的系列(“负”是第一个系列的标签,“中性”是第二个系列的标签,“正”是第三个系列的标签),而它将第二个解释解释为适用仅用于一个系列(因此:coral:slategrey:dodgerblue都是传入的第一个系列的所有颜色。这在Plots.jl中是一个微妙的区别,它经常使人绊倒(包括我在内!)

要获得三个标签,因此应该具有三个要绘制直方图的序列。一种方法是将您的情感标签向量分为三个向量:

histogram(
    [filter(x -> x == y,sentiment_labels) for y ∈ -1:1],fillcolor = [:coral :dodgerblue :slategray],label = ["Negative" "Positive" "Neutral"]
)

给予:

enter image description here

尽管我可能会争辩说,在您的情况下,histogram不是正确的工具-如果您的标签只会变成负数,中性和正数,那么像您一样,简单的条形图也可以不需要直方图提供的自动合并功能。所以我可能会做:

bar(
    title = "Count of sentiment labels",xlabel = "Sentiment",ylabel = "count",[-1 0 1],[[sum(sentiment_labels .== x)] for x ∈ -1:1],label = ["Negative" "Positive" "Neutral"],linecolor = [:coral :dodgerblue :slategray],xticks = -1:1
)

获得:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。