SxWordcloudChart (词云图)
- Implemented
NextUI 扩展图表。专门针对词云图场景优化的封装组件。
使用场景
- 关键词分析
- 热门话题展示
- 标签云可视化
- 文本频率分析
⚠️ 依赖说明
此组件需要安装 echarts-wordcloud 扩展:
npm install echarts-wordcloud
然后在页面中引入:
<script src="https://cdn.jsdelivr.net/npm/echarts-wordcloud@2/dist/echarts-wordcloud.min.js"></script>
约束说明
Options提供时将直接透传到 ECharts。- 未提供
Options时使用Data生成默认配置。 - 数据应包含 name(词)和 value(权重)属性。
行为说明
- 首次渲染初始化 ECharts 实例。
Disabled为真时不更新图表数据。- 支持多种形状和旋转角度。
API
Parameters (参数)
| 状态 | 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|---|
| Implemented | Data |
object? |
null |
数据源,包含 name 和 value 属性的对象数组。 |
| Implemented | NameField |
string |
"name" |
词文本字段名。 |
| Implemented | ValueField |
string |
"value" |
词权重字段名。 |
| Implemented | Shape |
string |
"circle" |
词云形状。可选: circle, cardioid(心形), diamond, square, triangle-forward, triangle, pentagon, star。 |
| Implemented | Left |
object? |
"center" |
左侧位置。 |
| Implemented | Top |
object? |
"center" |
顶部位置。 |
| Implemented | Width |
object? |
"70%" |
宽度。 |
| Implemented | Height |
object? |
"80%" |
高度。 |
| Implemented | SizeRangeMin |
int |
12 |
最小字体大小(像素)。 |
| Implemented | SizeRangeMax |
int |
60 |
最大字体大小(像素)。 |
| Implemented | RotationRange |
object? |
[-90, 90] |
文字旋转范围(度)。 |
| Implemented | RotationStep |
int |
45 |
旋转步进角度。 |
| Implemented | GridSize |
int |
8 |
网格大小,越大间距越大。 |
| Implemented | DrawOutOfBound |
bool |
false |
是否允许绘制到边界外。 |
| Implemented | TextStyle |
object? |
null |
文字样式配置(字体、颜色等)。 |
| Implemented | SeriesName |
string? |
null |
系列名称,用于提示框显示。 |
| Implemented | Options (继承) |
object? |
null |
覆盖 ECharts 配置。 |
| Implemented | Disabled (继承) |
bool |
false |
禁用状态。 |
| Implemented | Id (继承) |
string? |
null |
组件的物理 Id。 |
| Implemented | Class (继承) |
string? |
null |
自定义 CSS 类名。 |
| Implemented | Style (继承) |
string? |
null |
自定义样式。 |
| Implemented | Title (继承) |
string? |
null |
HTML title 属性。 |
| Implemented | AdditionalAttributes (继承) |
IEnumerable<KeyValuePair<string, object>>? |
null |
捕获不匹配的 HTML 属性。 |
示例
基础词云
<SxWordcloudChart />
自定义数据
<SxWordcloudChart Data="@wordData" />
@code {
private object[] wordData = new object[]
{
new { name = "数据可视化", value = 1000 },
new { name = "ECharts", value = 900 },
new { name = "Blazor", value = 850 },
new { name = "词云", value = 800 },
new { name = "组件", value = 750 }
};
}
心形词云
<SxWordcloudChart Shape="cardioid" SizeRangeMin="10" SizeRangeMax="80" />
横向词云(不旋转)
<SxWordcloudChart RotationRange='@(new[] { 0, 0 })' RotationStep="0" />
星形词云
<SxWordcloudChart Shape="star" GridSize="10" />