Crate wordcloud

Source
Expand description

WordCloud: A simplified way to create Wordclouds in Rust.

§Simple Example

use wordcloud::*;
use wordcloud::font::*;

let mut font_data = Vec::from(include_bytes!("font.ttf") as &[u8]);
let font_set = FontSetBuilder::new()
    .push(Font::from_data(&mut font_data).unwrap())
    .build();

let output_dimensions = Dimensions::from_wh(1000, 1000);
let wc = WordCloudBuilder::new()
    .dimensions(output_dimensions)
    .font(&font_set)
    .build()
    .unwrap();

let input_text = io::read_string_from_file("input_text.txt").unwrap();
let ranked = RankedWords::rank(input_text.split_whitespace().collect());

wc.write_content(ranked, 2000);
wc.export_rendered_to_file("output.svg").unwrap();

§Using Stopwords

use wordcloud::*;
use wordcloud::font::*;

// Create the default StopWords set using the "stopwords" crate feature
let stop_words = StopWords::default();

let input_text = io::read_string_from_file("input_text.txt").unwrap();
let ranked = RankedWords::rank(
    input_text
        .split_whitespace()
        // filter out the StopWords using the iterator function
        // a similar named function also exists for rayon's ParallelIterators
        .filter_stop_words(&stop_words)
        // filter out everything that is just a number
        .filter(
            |x| x.parse::<f64>().is_err()
        )
        .collect()
);

// ...

§Using Background Images

use wordcloud::*;

// ...

let image = image::load_from_memory(test_image).expect("image load failed");
let wc = WordCloudBuilder::new()
    .dimensions(output_dimensions)
    .font(&font_set)
    .image(&image)
    .build()
    .unwrap();

// ...

Example results can be found on the GitHub page.

Modules§

font
Provides everything regarding the used fonts.
io
Provides helpers for IO-Operations

Structs§

RankedWords
Used to precalculate the “common-ness” of the words.
StopWords
Keeps track of all used StopWords. Supports categorizing by writing scripts.
WordCloud
Creates the WordCloud
WordCloudBuilder
Builder for WordCloud

Traits§

StopWordsIterator
Trait implementing an Iterator function to filter out StopWords out of an Iterator
StopWordsIteratorPar
Trait implementing a ParallelIterator function to filter out StopWords out of a ParallelIterator

Functions§

clean
Remove symbols from a given string

Type Aliases§

Dimensions
Describes Dimensions used for the aspect ratio of the output.