cargo fmt --all

pull/663/head
Danny Gale 2 years ago
parent a590f26233
commit a9b0a13043

@ -189,12 +189,14 @@ fn ui<B: Backend>(f: &mut Frame<B>, app: &App) {
let chart = Chart::new(datasets)
.block(
Block::default()
.title(Span::styled(
"Chart 1",
Style::default()
.fg(Color::Cyan)
.add_modifier(Modifier::BOLD),
))
.title(
Span::styled(
"Chart 1",
Style::default()
.fg(Color::Cyan)
.add_modifier(Modifier::BOLD),
),
)
.borders(Borders::ALL),
)
.x_axis(
@ -226,12 +228,14 @@ fn ui<B: Backend>(f: &mut Frame<B>, app: &App) {
let chart = Chart::new(datasets)
.block(
Block::default()
.title(Span::styled(
"Chart 2",
Style::default()
.fg(Color::Cyan)
.add_modifier(Modifier::BOLD),
))
.title(
Span::styled(
"Chart 2",
Style::default()
.fg(Color::Cyan)
.add_modifier(Modifier::BOLD),
),
)
.borders(Borders::ALL),
)
.x_axis(
@ -267,12 +271,14 @@ fn ui<B: Backend>(f: &mut Frame<B>, app: &App) {
let chart = Chart::new(datasets)
.block(
Block::default()
.title(Span::styled(
"Chart 3",
Style::default()
.fg(Color::Cyan)
.add_modifier(Modifier::BOLD),
))
.title(
Span::styled(
"Chart 3",
Style::default()
.fg(Color::Cyan)
.add_modifier(Modifier::BOLD),
),
)
.borders(Borders::ALL),
)
.x_axis(

@ -223,35 +223,36 @@ where
.style(Style::default().fg(Color::Yellow))
.data(&app.signals.sin2.points),
];
let chart = Chart::new(datasets)
.block(
Block::default()
.title(Span::styled(
"Chart",
Style::default()
.fg(Color::Cyan)
.add_modifier(Modifier::BOLD),
))
.borders(Borders::ALL),
)
.x_axis(
Axis::default()
.title("X Axis")
.style(Style::default().fg(Color::Gray))
.bounds(app.signals.window)
.labels(x_labels),
)
.y_axis(
Axis::default()
.title("Y Axis")
.style(Style::default().fg(Color::Gray))
.bounds([-20.0, 20.0])
.labels(vec![
Span::styled("-20", Style::default().add_modifier(Modifier::BOLD)),
Span::raw("0"),
Span::styled("20", Style::default().add_modifier(Modifier::BOLD)),
]),
);
let chart =
Chart::new(datasets)
.block(
Block::default()
.title(Span::styled(
"Chart",
Style::default()
.fg(Color::Cyan)
.add_modifier(Modifier::BOLD),
))
.borders(Borders::ALL),
)
.x_axis(
Axis::default()
.title("X Axis")
.style(Style::default().fg(Color::Gray))
.bounds(app.signals.window)
.labels(x_labels),
)
.y_axis(
Axis::default()
.title("Y Axis")
.style(Style::default().fg(Color::Gray))
.bounds([-20.0, 20.0])
.labels(vec![
Span::styled("-20", Style::default().add_modifier(Modifier::BOLD)),
Span::raw("0"),
Span::styled("20", Style::default().add_modifier(Modifier::BOLD)),
]),
);
f.render_widget(chart, chunks[1]);
}
}

@ -12,31 +12,30 @@ use tui::{
backend::{Backend, CrosstermBackend},
layout::{Constraint, Direction, Layout},
style::{Color, Modifier, Style},
widgets::{Histogram, Block, Borders},
widgets::{Block, Borders, Histogram},
Frame, Terminal,
};
use rand::{Rng, rngs::ThreadRng, thread_rng};
use rand::{rngs::ThreadRng, thread_rng, Rng};
struct App {
data: Vec<u64>,
size: usize,
rng: ThreadRng
rng: ThreadRng,
}
impl App {
fn new(size: usize) -> App {
let data = vec![0; size];
App {
data,
rng: thread_rng(),
size
size,
}
}
fn on_tick(&mut self) {
for i in (0 .. self.size) {
for i in (0..self.size) {
self.data[i] = self.rng.gen_range(0..100);
}
}
@ -109,5 +108,4 @@ fn ui<B: Backend>(f: &mut Frame<B>, app: &App) {
.bar_style(Style::default().fg(Color::Yellow))
.value_style(Style::default().fg(Color::Black).bg(Color::Yellow));
f.render_widget(histogram, chunks[0]);
}

@ -8,7 +8,6 @@ use crate::{
use std::cmp::min;
use unicode_width::UnicodeWidthStr;
/// A bar chart specialized for showing histograms
///
/// # Examples
@ -91,7 +90,7 @@ impl<'a> Histogram<'a> {
// initialize buckets
self.values = Vec::with_capacity(n_buckets as usize);
for v in 0 .. n_buckets {
for v in 0..n_buckets {
self.values.push(format!("{}", v * bucket_size));
}
@ -164,33 +163,18 @@ impl<'a> Widget for Histogram<'a> {
return;
}
// BarChart calculates max_index as:
// max_index = chart_area.width / (bar_width + bar_gap)
// => chart_area.width = max_index * (bar_width + bar_gap)
// => chart_area.width / max_index = bar_width + bar_gap
// => bar_width = (chart_area.width / max_index) - bar_gap
let n_bars = self.buckets.len() as u16;
//let bar_width: u16 = chart_area.width / n_bars - self.bar_gap;
let bar_width: u16 = (chart_area.width - (n_bars+1) * self.bar_gap) / n_bars;
let bar_width: u16 = (chart_area.width - (n_bars + 1) * self.bar_gap) / n_bars;
let max = self
.max
.unwrap_or_else(|| self.buckets.iter().map(|t| *t).max().unwrap_or_default());
/*
let max_index = min(
(chart_area.width / (bar_width + self.bar_gap)) as usize,
self.data.len(),
);
*/
let mut data = self
.buckets
.iter()
.take(n_bars as usize)
//.take(max_index)
.map(|&v| {
v * u64::from(chart_area.height - 1) * 8 / std::cmp::max(max, 1)
})
.map(|&v| v * u64::from(chart_area.height - 1) * 8 / std::cmp::max(max, 1))
.collect::<Vec<u64>>();
for j in (0..chart_area.height - 1).rev() {
for (i, d) in data.iter_mut().enumerate() {

@ -34,7 +34,7 @@ pub use self::block::{Block, BorderType};
pub use self::chart::{Axis, Chart, Dataset, GraphType};
pub use self::clear::Clear;
pub use self::gauge::{Gauge, LineGauge};
pub use self::histogram::{Histogram};
pub use self::histogram::Histogram;
pub use self::list::{List, ListItem, ListState};
pub use self::paragraph::{Paragraph, Wrap};
pub use self::sparkline::Sparkline;

Loading…
Cancel
Save