|  |  | @ -29,28 +29,9 @@ void | 
			
		
	
		
		
			
				
					
					|  |  |  | svg_rect(double x, double y, double width, double height, string stroke = "chartreuse", string fill = "plum"){ |  |  |  | svg_rect(double x, double y, double width, double height, string stroke = "chartreuse", string fill = "plum"){ | 
			
		
	
		
		
			
				
					
					|  |  |  |     cout << "<rect x='" << x << "' y='" << y << "' width='" << width << "' height='" << height << "' stroke='" << stroke << "' fill='" << fill << "'/>"; |  |  |  |     cout << "<rect x='" << x << "' y='" << y << "' width='" << width << "' height='" << height << "' stroke='" << stroke << "' fill='" << fill << "'/>"; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | void |  |  |  | void | 
			
		
	
		
		
			
				
					
					|  |  |  | input_colors(string &colors_stroke, string &colors_fill){ |  |  |  | show_histogram_svg(const vector<size_t>& bins, const vector<string>& stroke,const vector<string>& fill) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     string color_personal; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     cout << "Do you want to change colors? Yes/No" << endl; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     cin >> color_personal; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     while ((color_personal != "No") && (color_personal != "Yes")){ |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         cout << "WRONG ANSWER! Try again!" << endl; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         cin >> color_personal; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (color_personal == "No"){ |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         return; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     else { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         cout << "What color for a stroke do you want?" << endl; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         cin >> colors_stroke; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         cout << "What color to fill do you want?" << endl; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         cin >> colors_fill; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     return; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | void |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | show_histogram_svg(const vector<size_t>& bins, string stroke, string fill) { |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     const auto IMAGE_WIDTH = 400; |  |  |  |     const auto IMAGE_WIDTH = 400; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const auto IMAGE_HEIGHT = 300; |  |  |  |     const auto IMAGE_HEIGHT = 300; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const auto TEXT_LEFT = 20; |  |  |  |     const auto TEXT_LEFT = 20; | 
			
		
	
	
		
		
			
				
					|  |  | @ -67,10 +48,10 @@ show_histogram_svg(const vector<size_t>& bins, string stroke, string fill) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             maxel = bin; |  |  |  |             maxel = bin; | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |     for (size_t bin : bins) { |  |  |  |     for (size_t i=0; i<bins.size(); i++) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         const double bin_width = (( IMAGE_WIDTH - TEXT_WIDTH ) / BLOCK_WIDTH ) * ( bin / maxel ); |  |  |  |         const double bin_width = (( IMAGE_WIDTH - TEXT_WIDTH ) / BLOCK_WIDTH ) * ( bins[i] / maxel ); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bin)); |  |  |  |         svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bins[i])); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT, stroke, fill); |  |  |  |         svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT, stroke[i], fill[i]); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         top += BIN_HEIGHT; |  |  |  |         top += BIN_HEIGHT; | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |     svg_end(); |  |  |  |     svg_end(); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |