1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import React, { Component } from "react";
- import ReactWordCloud from "react-wordcloud";
- class WordCloud extends Component {
- constructor(props) {
- super(props);
- this.state = {
- words: props.words ?? [
- { text: "Apparel", value: 1000 },
- { text: "Fashion", value: 800 },
- { text: "Style", value: 700 },
- { text: "Trend", value: 600 },
- { text: "Wear", value: 500 },
- { text: "Outfit", value: 400 },
- { text: "Clothing", value: 300 },
- { text: "Textile", value: 200 },
- ],
- options: props.options ?? {
- // deterministic: true,
- spiral: "archimedean",
- fontFamily: "sans-serif",
- fontSizes: [30, 80], // 字体范围
- // deterministic: true, // 尝试保持一致
- // enableOptimizations: true, // 优化性能,避免重新布局
- rotations: 0, // 不旋转
- // rotationAngles: [0, 90], // 旋转角度范围
- scale: "sqrt", // 字体缩放方式:linear、sqrt、log
- // spiral: "rectangular", // 词云排列方式:archimedean 或 rectangular
- padding: 20, // 单词之间的间距
- colors: ["#fff"],
- // colors: [
- // "#f87171",
- // "#fb923c",
- // "#facc15",
- // "#4ade80",
- // "#38bdf8",
- // "#a78bfa",
- // "#f472b6",
- // ], // 多彩渐变
- enableTooltip: false, // 鼠标悬停提示
- },
- };
- }
- render() {
- const { words, options } = this.state;
- return (
- <div style={{ width: "100%", height: "100%" }}>
- <ReactWordCloud words={words} options={options} />
- </div>
- );
- }
- }
- export default WordCloud;
|