CategoricalHistogram[{c1,c2,…,cn}]
从类别元素列表 c1, c2 中创建不同类别的直方图.
CategoricalHistogram[data,spec]
使用规范 spec 来确定类别.
CategoricalHistogram[data,spec,height]
使用高度值 height 来比较条柱.
CategoricalHistogram[{data1,data2,…},…]
为多个数据集 datai 绘制直方图.
CategoricalHistogram
CategoricalHistogram[{c1,c2,…,cn}]
从类别元素列表 c1, c2 中创建不同类别的直方图.
CategoricalHistogram[data,spec]
使用规范 spec 来确定类别.
CategoricalHistogram[data,spec,height]
使用高度值 height 来比较条柱.
CategoricalHistogram[{data1,data2,…},…]
为多个数据集 datai 绘制直方图.
更多信息
- CategoricalHistogram 也称为单向列联表.
- CategoricalHistogram 绘制一个矩形条形图,显示数据中每个不同类别 cat1、cat2、… 在元素 ci 中出现的次数.
- 类别元素 ci 可以是任何表达式. 常见形式有:
-
"name" 字符串值 Entity["type","ent"] Entity 对象 Nominal[{cat1,…,catk},ci] 名义类别元素 Ordinal[{cat1,…,catk},ci] 有序类别元素 - 数据集 datai 有以下形式及解释:
-
{c1,c2,…} 元素 ci 的列表 <|k1c1,k2c2,…|> 关联中的值 ci <|k1data,…|> 数据集的关联 TimeSeries,EventSeries,… 来自时间序列数据的值 WeightedData 每个元素的权重为其计数 w[datai] 数据集 datai 的包装器 w - CategoricalHistogram[objcspec] 用键指定 cspec 从 Tabular、TimeSeries 或 EventSeries 对象 obj 中提取值并绘制.
- 绘制表格数据时允许的 cspec 指定有:
-
k 用键 k 提取直方图元素 {k1,k2,…} 用键 k1,k2,… 提取直方图元素 - 可以给出以下类别规范 spec:
-
Automatic 自动确定分组 {cat1,cat2,…} 特定类别的序列 {cat1lab1,cat2lab2,…} 带有标签 labi 的类别序列 cati NominalScale[…] 来自名义量表的类别 OrdinalScale[…] 来自序数量表的类别 n 使用最常见的 n 个类别 "Decreasing","Increasing" 先显示最大或最小的类别 <|"prop1"val1,"prop2"val2,…|> 使用属性选择类别 - 默认情况下,序数数据的分组按排序顺序排列. 字符串、名义和其他数据形式的分组按频率递减顺序排列.
- 可能的分类属性 "propi" 包括:
-
"MaxCount" 要包含的类别的最大数量 "MinimumTotalFraction" 要包含的所有数据点的最小比例 "MinimumTotalCount" 要包含的所有数据点的最小计数 "MinimumBinFraction" 包含至少达到最小比例的类别 "MinimumBinCount" 包含至少达到最小计数的类别 "Categories" 要包含的潜在类别列表 "CategoryLabels" 用于类别的标签 "RemainderCategory" 未包含在其他类别中的数据名称 "CategoryOrdering" 如何对类别进行排序 - 使用 <|"MaxCount"n|>,CategoricalHistogram 将显示最大的 n 个类别.
- 使用 <|"MinimumFraction"f|> 时,CategoricalHistogram 将显示足够多的类别,使得数据占比达到 f. f 的取值应在 0 到 1 之间.
- 设置 "CategoryLabels"{cat1lab1, ...} 为显示类别 cati 时提供标签 labi.
- 设置 "RemainderCategory"other 为因 "MaxCount"、"MinBinCount" 等设置而省略的类别提供一个可使用的标签.
- 设置 "CategoryOrdering"order 的可能值包括:
-
Automatic 使用默认排序 "Decreasing" 将类别从最常见到最不常见排序 "Increasing" 将类别从最不常见到最常见排序 "Canonical" 使用类别的规范顺序排序 None 按遇到类别的顺序排序 - CategoricalHistogram 具有与 Graphics 相同的选项,并增加了以下内容与更改: [所有选项的列表]
-
AspectRatio 1/GoldenRatio 高度与宽度之比 Axes True 是否绘制坐标轴 BarOrigin Bottom 条形图的原点位置 BarSpacing Automatic 条柱之间的间距比例 ChartElementFunction Automatic 如何为条柱生成原始图形 ChartElements Automatic 每个条柱中使用的图形 ColorFunction Automatic 如何为条柱着色 ColorFunctionScaling True 是否将参数归一化为 ColorFunction Joined False 是否连接条柱 LabelingFunction Automatic 如何为条柱添加标签 LabelingSize Automatic 标注和标签的最大尺寸 LegendAppearance Automatic 图例的整体外观 PerformanceGoal $PerformanceGoal 优化的目标 PlotLabels None 数据集的标签 PlotLayout Automatic 使用的整体布局 PlotLegends None 数据元素和数据集的图例 PlotStyle Automatic 条柱的样式 PlotTheme $PlotTheme 图表的整体主题 ScalingFunctions None 如何对各个坐标进行缩放 - PlotLegends 的常见设置包括:
-
None 没有图例 Automatic 自动确定图例 {lbl1,lbl2,…} 用 lbl1、lbl2、… 作为图例标签 Placed[lspec,…] 指定图例的位置 - PlotStylesty 指定每条曲线使用的样式. 可能的设置包括:
-
{sty1,sty2,…} 为数据集设定的一系列样式 <|"key"val,…|> 为不同层级的数据设定样式 - The accepted keys are:
-
"Base" 所有 datai 的整体样式 "Lists" 针对每个 datai 的样式 styi 组成的列表 "Categories" 针对每个类别 cati 的样式列表 styi - ColorData["DefaultChartColors"] 给出 PlotStyle 使用的默认颜色序列.
- PlotLayout 的以下设置可用于显示多个数据集:
-

"Overlapped" 显示所有条柱重叠 
"Stacked" 每个条柱内累积计数 - 在多个图表面板中显示单组条柱的 PlotLayout 设置包括:
-
"Column" 在一列面板中使用单独的条柱组 "Row" 在一行面板中使用单独的条柱组 {"Column",k},{"Row",k} 使用 k 列或行 {"Column",UpTo[k]},{"Row",UpTo[k]} 最多使用 k 列或行
所有选项的列表
范例
打开所有单元 关闭所有单元基本范例 (7)
CategoricalHistogram[IconizedObject[«Cylinders per car»]]CategoricalHistogram[{IconizedObject[«compact-class cylinders»], IconizedObject[«midsize-class cylinders»], IconizedObject[«subcompact-class cylinders»]}]data = <|"data one" -> <|"a" -> "dog", "b" -> "fish", "c" -> "fish", "d" -> "fish", "e" -> "cat", "f" -> "fish", "g" -> "cat", "h" -> "cat", "i" -> "fish", "j" -> "fish", "k" -> "fish", "l" -> "fish", "m" -> "fish"|>, "data two" -> <|"a" -> "cat", "b" -> "fish", "c" -> "cat", "d" -> "dog", "e" -> "cat", "f" -> "cat", "g" -> "cat", "h" -> "fish", "i" -> "cat", "j" -> "dog", "k" -> "cat", "l" -> "cat", "m" -> "cat"|>|>;CategoricalHistogram[data, <|"CategoryLabels" -> <|"cat" -> "CAT", "dog" -> "DOG"|>|>]CategoricalHistogram[IconizedObject[«Cylinders per car»], PlotStyle -> "DarkRainbow"]CategoricalHistogram[{IconizedObject[«compact-class cylinders»], IconizedObject[«midsize-class cylinders»], IconizedObject[«subcompact-class cylinders»]}, PlotStyle -> "DarkRainbow"]通过 PlotStyle{style,None} 改用按类别划分的配色方案:
CategoricalHistogram[{IconizedObject[«compact-class cylinders»], IconizedObject[«midsize-class cylinders»], IconizedObject[«subcompact-class cylinders»]}, PlotStyle -> {"DarkRainbow", None}]CategoricalHistogram[IconizedObject[«Cylinders per car»], ChartElements -> [image]]Table[CategoricalHistogram[{IconizedObject[«compact-class cylinders»], IconizedObject[«midsize-class cylinders»], IconizedObject[«subcompact-class cylinders»]}, PlotLabel -> l, ChartLayout -> l], {l, {"Percentile", "Stacked"}}]范围 (28)
数据与布局 (15)
CategoricalHistogram[IconizedObject[«Cars per fuel type»]]CategoricalHistogram[IconizedObject[«Cars per fuel type»], {"r", "p", "e"}]CategoricalHistogram[IconizedObject[«Cars per fuel type»], 4]CategoricalHistogram[IconizedObject[«Cars per fuel type»], <|"CategoryOrdering" -> "Increasing"|>]CategoricalHistogram[IconizedObject[«Cars per fuel type»], <|"CategoryOrdering" -> "Alphabetic"|>]CategoricalHistogram[IconizedObject[«Cars per fuel type»], <|"MinimumBinCount" -> 50|>]CategoricalHistogram[IconizedObject[«Cars per fuel type»], <|"MinimumBinFraction" -> .22|>]CategoricalHistogram[IconizedObject[«Cars per fuel type»], <|"MinimumTotalFraction" -> .95|>]CategoricalHistogram[IconizedObject[«Cars per fuel type»], <|"CategoryOrdering" -> "Increasing", "MinimumTotalFraction" -> .05|>]CategoricalHistogram[IconizedObject[«Cars per fuel type»], <|"CategoryLabels" -> <|"c" -> "Label 1", "d" -> "Label 2"|>|>]CategoricalHistogram[{IconizedObject[«compact-class cylinders»], IconizedObject[«midsize-class cylinders»], IconizedObject[«subcompact-class cylinders»]}, PlotLegends -> Automatic]CategoricalHistogram[<|"compact" -> IconizedObject[«compact-class cylinders»], "midsize" -> IconizedObject[«midsize-class cylinders»], "Subcompact" -> IconizedObject[«subcompact-class cylinders»]|>]data = <|"data one" -> <|"a" -> "dog", "b" -> "fish", "c" -> "fish", "d" -> "fish", "e" -> "cat", "f" -> "fish", "g" -> "cat", "h" -> "cat", "i" -> "fish", "j" -> "fish", "k" -> "fish", "l" -> "fish", "m" -> "fish"|>, "data two" -> <|"a" -> "cat", "b" -> "fish", "c" -> "cat", "d" -> "dog", "e" -> "cat", "f" -> "cat", "g" -> "cat", "h" -> "fish", "i" -> "cat", "j" -> "dog", "k" -> "cat", "l" -> "cat", "m" -> "cat"|>|>;CategoricalHistogram[data]CategoricalHistogram[data, ChartLegends -> Automatic]Table[CategoricalHistogram[{IconizedObject[«compact-class cylinders»], IconizedObject[«midsize-class cylinders»], IconizedObject[«subcompact-class cylinders»]}, PlotLabel -> l, ChartLayout -> l], {l, {"Percentile", "Stacked"}}]CategoricalHistogram[{IconizedObject[«compact-class cylinders»], IconizedObject[«midsize-class cylinders»], IconizedObject[«subcompact-class cylinders»]}, PlotLabel -> "Overlapped", ChartLayout -> "Overlapped"]CategoricalHistogram[{IconizedObject[«compact-class cylinders»], IconizedObject[«midsize-class cylinders»], IconizedObject[«subcompact-class cylinders»]}, ChartLayout -> "Column"]data = {"Cat", "Dog", "Rabbit", "Cat", "Rabbit", "Bird", "Rabbit", "Dog", "Dog", "Dog"};
Table[CategoricalHistogram[data, BarOrigin -> o, PlotLabel -> o, ImageSize -> Small], {o, {Bottom, Left, Top, Right}}]表格数据 (1)
titanic = ToTabular[ResourceData["Sample Data: Titanic Survival"]]为乘客等级创建 Histogram:
CategoricalHistogram[titanic -> "Class"]groupdata = GroupBy[titanic, #Class&, Normal[#[All, "Sex"]]&];CategoricalHistogram[groupdata, ChartLegends -> Automatic]CategoricalHistogram[groupdata, ChartLegends -> Automatic, ChartLayout -> "Stacked"]封装 (1)
样式与外观 (5)
CategoricalHistogram[IconizedObject[«Male Palmer Penguins Species»], PlotStyle -> 60]CategoricalHistogram[{IconizedObject[«Female Palmer Penguins Species»], IconizedObject[«Male Palmer Penguins Species»]}, PlotStyle -> {Red, Green}]使用 ColorData 中的任意渐变色或索引色方案:
{CategoricalHistogram[{IconizedObject[«Female Palmer Penguins Species»], IconizedObject[«Male Palmer Penguins Species»]}, PlotStyle -> "Pastel"], CategoricalHistogram[{IconizedObject[«Female Palmer Penguins Species»], IconizedObject[«Male Palmer Penguins Species»]}, PlotStyle -> {"Pastel", None}]}ChartBaseStyle 可用于为所有图表元素设置初始样式:
CategoricalHistogram[{IconizedObject[«Female Palmer Penguins Species»], IconizedObject[«Male Palmer Penguins Species»]}, ChartBaseStyle -> EdgeForm[Dotted]]CategoricalHistogram[IconizedObject[«Male Palmer Penguins Species»], ChartElements -> Graphics[{Red, Circle[]}]]ChartElementData["Histogram"]Table[CategoricalHistogram[IconizedObject[«Male Palmer Penguins Species»], ChartElementFunction -> f], {f, {"GlassRectangle", "GradientScaleRectangle"}}]使用 Palettes ▶ ChartElementSchemes 进行详细设置:
CategoricalHistogram[IconizedObject[«Male Palmer Penguins Species»], ChartElementFunction -> ChartElementDataFunction["SegmentScaleRectangle", "Segments" -> 7, "ColorScheme" -> "SolarColors"]]CategoricalHistogram[IconizedObject[«Male Palmer Penguins Species»], PlotTheme -> "Monochrome"]标签与图例 (6)
通过使用 LabelingFunction 为条柱添加数值标签:
CategoricalHistogram[IconizedObject[«compact-class cylinders»], LabelingFunction -> Above]ChartElements 可覆盖 PlotStyle 的设置:
CategoricalHistogram[IconizedObject[«compact-class cylinders»], ChartElements -> [image], PlotStyle -> {RGBColor[0.93, 0.27, 0.27], RGBColor[0.14, 0.8, 0.14], RGBColor[0.4, 0.6, 1]}]在自定义函数内用 Placed 控制标签的放置和格式:
labeler[v_, {i_, j_}, {ri_, cj_}] := Placed[{StringJoin[ToString[First@cj], "-cyl"], v}, Above, Column]CategoricalHistogram[IconizedObject[«compact-class cylinders»], LabelingFunction -> labeler]CategoricalHistogram[IconizedObject[«compact-class cylinders»], ChartLegends -> {"Cat1", "Cat2", "Cat3"}, PlotStyle -> "Pastel"]用基于 Association 的 PlotStyle 表明类别:
CategoricalHistogram[IconizedObject[«compact-class cylinders»], ChartLegends -> {"Cat1", "Cat2", "Cat3"}, PlotStyle -> <|"Categories" -> "Pastel"|>]CategoricalHistogram[{IconizedObject[«compact-class cylinders»], IconizedObject[«midsize-class cylinders»], IconizedObject[«subcompact-class cylinders»]}, PlotStyle -> <|"Categories" -> "Pastel"|>, PlotLegends -> <|"Categories" -> {"Cat1", "Cat2", "Cat3"}|>]CategoricalHistogram[{IconizedObject[«compact-class cylinders»], IconizedObject[«midsize-class cylinders»], IconizedObject[«subcompact-class cylinders»]}, ChartLegends -> {"Dataset1", "Dataset2", "Dataset3"}, PlotStyle -> "Pastel"]CategoricalHistogram[{IconizedObject[«compact-class cylinders»], IconizedObject[«midsize-class cylinders»], IconizedObject[«subcompact-class cylinders»]}, PlotStyle -> <|"Lists" -> "Pastel"|>, PlotLegends -> <|"Lists" -> {"Dataset1", "Dataset2", "Dataset3"}|>]使用 Placed 来影响图例的放置:
Table[CategoricalHistogram[{IconizedObject[«compact-class cylinders»], IconizedObject[«midsize-class cylinders»], IconizedObject[«subcompact-class cylinders»]}, ChartLegends -> Placed[{"ccc1", "ccc2", "ccc3"}, p], PlotStyle -> "Pastel"], {p, {Below, Above}}]应用 (5)
table = ToTabular[ResourceData["Sample Data: Mushroom Classification"]]CategoricalHistogram[table -> "Class"]用 GroupBy 按栖息地以及是否可食用来拆分数据:
classperhabitat = GroupBy[table, #Class&, Normal[#[All, "Habitat"]]&];
CategoricalHistogram[classperhabitat, BarSpacing -> {Automatic, 3.5}, PlotLegends -> Automatic]对于类别过多的情况,可使用 LabelingSize 仅显示类别的一部分:
CategoricalHistogram[classperhabitat, BarSpacing -> {Automatic, 4}, PlotLegends -> Automatic, AspectRatio -> 1 / 2, LabelingSize -> 32]tabulardata = ResourceData["Sample Tabular Data: Diamonds"];CategoricalHistogram[tabulardata -> "cut"]用 GroupBy 和 CategoricalHistogram 按颜色显示不同切工的钻石的数量:
groupdata = GroupBy[tabulardata, #cut&, Normal[#[All, "color"]]&];CategoricalHistogram[groupdata, ChartLegends -> Automatic]用 "MinimumBinFraction" 显示数量至少占总数 15% 的类别:
CategoricalHistogram[groupdata, <|"MinimumBinFraction" -> .15|>, ChartLegends -> Automatic]用 "MaxCount" 来突出显示最大的类别,并用 "RemainderCategory" 将所有其他元素放入一个通用分组中:
CategoricalHistogram[groupdata, <|"MaxCount" -> 2|>, ChartLegends -> Automatic]添加 "RemainderCategory",将所有丢弃的元素放入一个通用分组中,同时保留基于 "MaxCount" 选取的原始元素:
CategoricalHistogram[groupdata, <|"MaxCount" -> 2, "RemainderCategory" -> "Others"|>, PlotLegends -> Automatic]tab = ResourceData["Sample Tabular Data: Palmer Penguins"];
data = GroupBy[tab, #sex&, Normal[#[All, "species"]]&];CategoricalHistogram[data, ChartLegends -> Automatic]kidneydata = ToTabular[ResourceData["Sample Data: Kidney Transplant"]];
CategoricalHistogram[kidneydata -> "Gender", ChartLegends -> Automatic]kidneydatabygenderandrace = GroupBy[kidneydata, #Gender&, Normal[#[All, "Race"]]&];
CategoricalHistogram[kidneydatabygenderandrace, ChartLegends -> Automatic]NYCTrees = ResourceData["Sample Tabular Data: NYC Trees"];CategoricalHistogram[NYCTrees -> "user_type", BarSpacing -> 2]NYCTreesbyusertype = GroupBy[NYCTrees, #"user_type"&, Normal[#[All, "borough"]]&];CategoricalHistogram[NYCTreesbyusertype, BarSpacing -> {Automatic, 4}, PlotLegends -> Automatic]文本
Wolfram Research (2026),CategoricalHistogram,Wolfram 语言函数,https://reference.wolfram.com/language/ref/CategoricalHistogram.html.
CMS
Wolfram 语言. 2026. "CategoricalHistogram." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/CategoricalHistogram.html.
APA
Wolfram 语言. (2026). CategoricalHistogram. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/CategoricalHistogram.html 年
BibTeX
@misc{reference.wolfram_2026_categoricalhistogram, author="Wolfram Research", title="{CategoricalHistogram}", year="2026", howpublished="\url{https://reference.wolfram.com/language/ref/CategoricalHistogram.html}", note=[Accessed: 09-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_categoricalhistogram, organization={Wolfram Research}, title={CategoricalHistogram}, year={2026}, url={https://reference.wolfram.com/language/ref/CategoricalHistogram.html}, note=[Accessed: 09-August-2026]}