|
|
@ -14,8 +14,8 @@ const auto BLOCK_WIDTH = 10;
|
|
|
|
const auto MAX_WIDTH = IMAGE_WIDTH - TEXT_WIDTH;
|
|
|
|
const auto MAX_WIDTH = IMAGE_WIDTH - TEXT_WIDTH;
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
void
|
|
|
|
svg_text(double left, double baseline, string text) {
|
|
|
|
svg_text(double left, double baseline, int font_size, string text) {
|
|
|
|
cout << "<text x='" << left << "' y='" << baseline << "'>" << text << "</text>";
|
|
|
|
cout << "<text x='" << left << "' y='" << baseline << "' font-size='" << font_size << "'>" << text << "</text>";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
void
|
|
|
@ -40,6 +40,20 @@ svg_end() {
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
void
|
|
|
|
show_histogram_svg(const vector<size_t>& bins) {
|
|
|
|
show_histogram_svg(const vector<size_t>& bins) {
|
|
|
|
|
|
|
|
int font_size = 12;
|
|
|
|
|
|
|
|
bool flag = true;
|
|
|
|
|
|
|
|
while(flag) {
|
|
|
|
|
|
|
|
cerr << "Enter font size (8-32): ";
|
|
|
|
|
|
|
|
cin >> font_size;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (font_size < 8) {
|
|
|
|
|
|
|
|
cerr << "Font size is too small. Please enter a value between 8 and 32." << endl;
|
|
|
|
|
|
|
|
} else if (font_size > 32) {
|
|
|
|
|
|
|
|
cerr << "Font size is too large. Please enter a value between 8 and 32." << endl;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
flag = false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
const auto MAX_WIDTH = IMAGE_WIDTH - TEXT_WIDTH;
|
|
|
|
const auto MAX_WIDTH = IMAGE_WIDTH - TEXT_WIDTH;
|
|
|
|
size_t max_count = 0;
|
|
|
|
size_t max_count = 0;
|
|
|
|
for (size_t x : bins) {
|
|
|
|
for (size_t x : bins) {
|
|
|
@ -58,10 +72,9 @@ show_histogram_svg(const vector<size_t>& bins) {
|
|
|
|
double top = 0;
|
|
|
|
double top = 0;
|
|
|
|
for (size_t bin : bins) {
|
|
|
|
for (size_t bin : bins) {
|
|
|
|
double bin_width = BLOCK_WIDTH * bin * scale_factor;
|
|
|
|
double bin_width = BLOCK_WIDTH * bin * scale_factor;
|
|
|
|
svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bin));
|
|
|
|
svg_text(TEXT_LEFT, top + TEXT_BASELINE, font_size, to_string(bin));
|
|
|
|
svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT);
|
|
|
|
svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT);
|
|
|
|
top += BIN_HEIGHT;
|
|
|
|
top += BIN_HEIGHT;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
svg_end();
|
|
|
|
svg_end();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|