Plot 如何在Julia中绘制一个离散变量与另一个离散变量的对比图?

Plot 如何在Julia中绘制一个离散变量与另一个离散变量的对比图?,plot,julia,data-science,Plot,Julia,Data Science,假设我有一个由两列组成的数据库,第一列对应于受访者的性别,第二列对应于他或她正在研究的领域。 此表来自使用csv库导入csv文件 Gender,Field Male,Physics Female,Physics Female,Mathematics Male,Physics Male,Physics Male,Physics Female,Mathematics Female,Mathematics Male,Physics 使用Julia,我想用直方图的形式表示这个数据库,并根据这些字符中的

假设我有一个由两列组成的数据库,第一列对应于受访者的性别,第二列对应于他或她正在研究的领域。 此表来自使用csv库导入csv文件

Gender,Field
Male,Physics
Female,Physics
Female,Mathematics
Male,Physics
Male,Physics
Male,Physics
Female,Mathematics
Female,Mathematics
Male,Physics
使用Julia,我想用直方图的形式表示这个数据库,并根据这些字符中的一个进行分组


我已经搜索了几个库,但由于对该语言不熟悉,我还没有找到一个实用的方法。

这里有一种方法可以使用Plots()实现


您参加过本教程吗?当然,我做了,但它没有包含我的问题的任何解决方案。这听起来像是你想要绘制一个条形图,而不是直方图,因为直方图描述定量数据,而你想要表示定性数据(即受试者)。试着在Julia中使用。好吧,你给我的链接不是分组直方图
using CSV

data = CSV.read("data.csv")
using CSV, Plots
using StatsBase: countmap

data = CSV.read("data.csv")

genders = unique(data[!, :Gender])
categories = unique(data[!, :Field])

cm = countmap(Tuple.(eachrow(data)))
# Dict{Tuple{String,String},Int64} with 3 entries:
# ("Female", "Mathematics") => 3
# ("Female", "Physics")     => 1
# ("Male", "Physics")       => 5

# With Plots you can pass a Matrix to plot multiple series
# each column is a series and each row is a category
y = [get(cm, (g, c), 0) for c in categories, g in genders]
# 2×2 Array{Int64,2}:
# M  F
# 5  1 Physics
# 0  3 Mathematics

# We want each label to apply to a series,
# so instead of an n-length Vector, we pass a 1xn Matrix.
labels = permutedims(genders) 
# 1×2 Array{String,2}:
# "Male"  "Female"

bar(categories, y, labels = labels)