MCPcopy Create free account
hub / github.com/alandefreitas/matplotplusplus / data_string

Method data_string

source/matplot/axes_objects/network.cpp:107–239  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105 }
106
107 std::string network::data_string() {
108 std::stringstream ss;
109 ss.precision(10);
110 ss << std::fixed;
111 bool plot_z_data = z_data_.size() == x_data_.size();
112 bool line_width_is_variable = !line_widths_.empty() && z_data_.empty();
113 // plot edges
114 if (!directed_) {
115 // when not directed, each edge is a line
116 for (size_t i = 0; i < edges_.size(); ++i) {
117 ss << " " << x_data_[edges_[i].first];
118 if (!line_width_is_variable) {
119 ss << " " << y_data_[edges_[i].first];
120 } else {
121 ss << " "
122 << y_data_[edges_[i].first] - line_widths_[i] / 2.;
123 ss << " "
124 << y_data_[edges_[i].first] + line_widths_[i] / 2.;
125 }
126 if (plot_z_data) {
127 ss << " " << z_data_[edges_[i].first];
128 }
129 ss << "\n";
130 ss << " " << x_data_[edges_[i].second];
131 if (!line_width_is_variable) {
132 ss << " " << y_data_[edges_[i].second];
133 } else {
134 ss << " "
135 << y_data_[edges_[i].second] - line_widths_[i] / 2.;
136 ss << " "
137 << y_data_[edges_[i].second] + line_widths_[i] / 2.;
138 }
139 if (plot_z_data) {
140 ss << " " << z_data_[edges_[i].second];
141 }
142 ss << "\n\n";
143 }
144 ss << "e\n";
145 } else {
146 // when directed, each edge is a vector
147 // for each edge, plot two vectors
148 // - one from start to middle
149 // - one from middle to end
150 for (size_t i = 0; i < edges_.size(); ++i) {
151 double x1 = x_data_[edges_[i].first];
152 double y1 = y_data_[edges_[i].first];
153 double x2 = x_data_[edges_[i].second];
154 double y2 = y_data_[edges_[i].second];
155 double xmean = 0.5 * (x1 + x2);
156 double ymean = 0.5 * (y1 + y2);
157 double u1 = xmean - x1;
158 double v1 = ymean - y1;
159 double u2 = x2 - xmean;
160 double v2 = y2 - ymean;
161 if (!plot_z_data) {
162 ss << " " << x1 << " " << y1 << " " << u1 << " " << v1
163 << "\n";
164 ss << " " << xmean << " " << ymean << " " << u2 << " "

Callers

nothing calls this directly

Calls 2

emptyMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected