Changeset 2909
- Timestamp:
- 03/24/14 17:32:50 (11 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/python/plotter2.py
r2896 r2909 545 545 def set_arrow(self, xtail, xhead, ytail, yhead, color=None, width=None, linestyle=None, headsize=None, headfs=None, headangle=None, headvent=None, vpid=None, arrowid=None): 546 546 """\ 547 appendan arrow or change existing arrow attributes.547 draw an arrow or change existing arrow attributes. 548 548 549 549 Parameters: … … 589 589 self._plotter.set_arrow(xtail, xhead, ytail, yhead, coloridx, width, linestyleidx, headsize, headfsidx, headangle, headvent, vpid, arrowid) 590 590 591 def set_annotation(self, label, posx=None, posy=None, angle=None, fjust=None, size=None, style=None, color=None, bgcolor=None, vpid=None, annid=None): 592 if posx is None: posx = 0.5 593 if posy is None: posy = 0.5 591 def set_text(self, text, posx=None, posy=None, angle=None, fjust=None, size=None, style=None, color=None, bgcolor=None, vpid=None, textid=None): 592 """\ 593 write text string or change existing text attributes. 594 595 Parameters: 596 text: text string. 597 posx: x position of text in world coordinate. 598 default is center of x axis. 599 posy: y position of text in world coordinate. 600 default is center of y axis. 601 angle: rotation angle of text in unit of degree. 602 0.0 (default) is horizontal. 603 fjust: horizontal justification of text string. if 0.0 604 (default) is given, the text is left-justified at 605 (posx, posy). if 0.5, the text is centered, and if 606 1.0, the text is right-justified. 607 size: size of text string. the default is 1.0. 608 style: font style. "normal", "roman", "italic" and "script" 609 are available. default is "normal". 610 color: color of text. see output of list_colornames(). 611 default is "black". 612 bgcolor: background color of text. see output of 613 list_colornames(). default is transparent(-1). 614 vpid: viewport id. when not given, the last viewport will 615 be the target. 616 textid: text id independently defined for each viewport. 617 when not given, the text having the final text id 618 for the specified viewport will be the target. 619 """ 620 if posx is None: posx = -1.0 621 if posy is None: posy = -1.0 594 622 if angle is None: angle = 0.0 595 if fjust is None: fjust = 0. 5623 if fjust is None: fjust = 0.0 596 624 if size is None: size = 1.0 597 625 if style is None: style = "" … … 599 627 if bgcolor is None: bgcolor = "" # transparent 600 628 if vpid is None: vpid = -1 601 if annid is None: annid= -1629 if textid is None: textid = -1 602 630 603 631 coloridx = self.get_colorindex(color) 604 bgcoloridx = self.get_colorindex(bgcolor) if (bgcolor.strip() != "") else bgcolor605 606 self._plotter.set_ annotation(label, posx, posy, angle, fjust, size, style, coloridx, bgcoloridx, vpid, annid)632 bgcoloridx = self.get_colorindex(bgcolor) if (bgcolor.strip() != "") else -1 #bgcolor 633 634 self._plotter.set_text(text, posx, posy, angle, fjust, size, style, coloridx, bgcoloridx, vpid, textid) 607 635 608 636 def set_xlabel(self, label, style=None, size=None, posx=None, posy=None, vpid=None): … … 620 648 posx: x position of label string in window coordinate. 621 649 default is the center of x axis. 622 posy: y position of label string .650 posy: y position of label string in window coordinate. 623 651 vpid: viewport id. when not given, the last viewport 624 652 will be the target. … … 645 673 of number labels) 646 674 posx: x position of label string in window coordinate. 647 posy: y position of label string .675 posy: y position of label string in window coordinate. 648 676 default is the center of y axis. 649 677 vpid: viewport id. when not given, the last viewport -
trunk/python/scantable.py
r2902 r2909 2053 2053 pmin = 0.0 2054 2054 pmax = float(self.nchan(spw) - 1) 2055 2056 molid = self._getmolidcol_list()[self.get_first_rowno_by_if(spw)] 2055 2057 2056 2058 if (len(colon_sep) == 1): … … 2110 2112 elif is_number(expr0) and is_velocity(expr1): 2111 2113 # 'a~b*m/s' 2112 restf = self.get_restfreqs() .values()[0][0]2114 restf = self.get_restfreqs()[molid][0] 2113 2115 (expr_v0, expr_v1) = get_velocity_by_string(expr0, expr1) 2114 2116 dppl = self.get_doppler() -
trunk/src/Plotter2.cpp
r2896 r2909 3 3 namespace asap { 4 4 5 Plotter2 AnnotationInfo::Plotter2AnnotationInfo() {5 Plotter2TextInfo::Plotter2TextInfo() { 6 6 text = ""; 7 7 posx = 0.0; … … 14 14 } 15 15 16 Plotter2 AnnotationInfo::~Plotter2AnnotationInfo() {16 Plotter2TextInfo::~Plotter2TextInfo() { 17 17 } 18 18 … … 103 103 vRect.clear(); 104 104 vArro.clear(); 105 v Anno.clear();105 vText.clear(); 106 106 107 107 labelXString = ""; … … 139 139 vRect.clear(); 140 140 vArro.clear(); 141 v Anno.clear();141 vText.clear(); 142 142 } 143 143 … … 917 917 di->lineWidth = width; 918 918 di->lineStyle = style; 919 //vi->vData[dataid].lineStyle = style;920 919 } 921 920 … … 1133 1132 } 1134 1133 1135 void Plotter2::set Annotation(const std::string& label, const float posx, const float posy, const float angle, const float fjust, const float size, const std::string& style, const int color, const int bgcolor, const int inVpid, const int inAnnid) {1136 int vpid = inVpid; 1137 if (vpid >= (int)vInfo.size()) { 1138 exit(0); 1139 } 1140 if (vpid < 0) { 1141 vpid = vInfo.size() - 1; 1142 } 1143 if (vpid < 0) { 1144 Plotter2ViewportInfo vi; 1145 vInfo.push_back(vi); 1146 vpid = 0; 1147 } 1148 1149 Plotter2ViewportInfo* vi = &vInfo[vpid]; 1150 1151 int annotationid = in Annid;1134 void Plotter2::setText(const std::string& text, const float inPosx, const float inPosy, const float angle, const float fjust, const float size, const std::string& style, const int color, const int bgcolor, const int inVpid, const int inTextid) { 1135 int vpid = inVpid; 1136 if (vpid >= (int)vInfo.size()) { 1137 exit(0); 1138 } 1139 if (vpid < 0) { 1140 vpid = vInfo.size() - 1; 1141 } 1142 if (vpid < 0) { 1143 Plotter2ViewportInfo vi; 1144 vInfo.push_back(vi); 1145 vpid = 0; 1146 } 1147 1148 Plotter2ViewportInfo* vi = &vInfo[vpid]; 1149 1150 int annotationid = inTextid; 1152 1151 if (annotationid < 0) { 1153 Plotter2 AnnotationInfo ai;1154 vi->v Anno.push_back(ai);1155 annotationid = vi->v Anno.size() - 1;1156 } else if (annotationid >= (int)vi->v Anno.size()) {1157 exit(0); 1158 } 1159 1160 Plotter2 AnnotationInfo* ai = &vi->vAnno[annotationid];1152 Plotter2TextInfo ti; 1153 vi->vText.push_back(ti); 1154 annotationid = vi->vText.size() - 1; 1155 } else if (annotationid >= (int)vi->vText.size()) { 1156 exit(0); 1157 } 1158 1159 Plotter2TextInfo* ti = &vi->vText[annotationid]; 1161 1160 1162 1161 std::string styleString; … … 1171 1170 } 1172 1171 1173 ai->text = styleString + label; 1174 ai->posx = posx; 1175 ai->posy = posy; 1176 ai->angle = angle; 1177 ai->fjust = fjust; 1178 ai->size = size; 1179 ai->color = color; 1180 ai->bgcolor = bgcolor; 1172 ti->text = styleString + text; 1173 1174 float posx = inPosx; 1175 if (posx < 0.0) { 1176 posx = 0.5*(vi->vpPosXMin + vi->vpPosXMax); 1177 } 1178 ti->posx = posx; 1179 1180 float posy = inPosy; 1181 if (posy < 0.0) { 1182 posy = 0.5*(vi->vpPosYMin + vi->vpPosYMax); 1183 } 1184 ti->posy = posy; 1185 1186 ti->angle = angle; 1187 ti->fjust = fjust; 1188 ti->size = size; 1189 ti->color = color; 1190 ti->bgcolor = bgcolor; 1181 1191 } 1182 1192 … … 1458 1468 } 1459 1469 1460 // a nnotations1461 for (unsigned int j = 0; j < vi.v Anno.size(); ++j) {1470 // arbitrary texts 1471 for (unsigned int j = 0; j < vi.vText.size(); ++j) { 1462 1472 resetAttributes(vi); 1463 1473 1464 Plotter2 AnnotationInfo ai = vi.vAnno[j];1465 cpgsch( ai.size);1466 cpgsci( ai.color);1467 cpgstbg( ai.bgcolor);1468 cpgptxt( ai.posx, ai.posy, ai.angle, ai.fjust, ai.text.c_str());1474 Plotter2TextInfo ti = vi.vText[j]; 1475 cpgsch(ti.size); 1476 cpgsci(ti.color); 1477 cpgstbg(ti.bgcolor); 1478 cpgptxt(ti.posx, ti.posy, ti.angle, ti.fjust, ti.text.c_str()); 1469 1479 } 1470 1480 -
trunk/src/Plotter2.h
r2896 r2909 11 11 namespace asap { 12 12 13 class Plotter2 AnnotationInfo {14 public: 15 Plotter2 AnnotationInfo();16 ~Plotter2 AnnotationInfo();13 class Plotter2TextInfo { 14 public: 15 Plotter2TextInfo(); 16 ~Plotter2TextInfo(); 17 17 18 18 std::string text; … … 140 140 141 141 //annotations 142 std::vector<Plotter2 AnnotationInfo> vAnno;142 std::vector<Plotter2TextInfo> vText; 143 143 144 144 // x-label … … 239 239 void setMaskX(const float xmin, const float xmax, const int color, const int fill, const int width, const float hsep, const int inVpid); 240 240 void setArrow(const float xtail, const float xhead, const float ytail, const float yhead, const int color, const int width, const int lineStyle, const float headSize, const int headFillStyle, const float headAngle, const float headVent, const int inVpid, const int inArrowid); 241 void set Annotation(const std::string& label, const float posx, const float posy, const float angle, const float fjust, const float size, const std::string& style, const int color, const int bgcolor, const int inVpid, const int inAnnid);242 void setLabelX(const std::string& label, const float posx, const float posy, const float size, const std::string& style, const int color, const int bgcolor, const int inVpid);243 void setLabelY(const std::string& label, const float posx, const float posy, const float size, const std::string& style, const int color, const int bgcolor, const int inVpid);244 void setTitle(const std::string& label, const float posx, const float posy, const float size, const std::string& style, const int color, const int bgcolor, const int inVpid);241 void setText(const std::string& text, const float inPosx, const float inPosy, const float angle, const float fjust, const float size, const std::string& style, const int color, const int bgcolor, const int inVpid, const int inTextid); 242 void setLabelX(const std::string& label, const float inPosx, const float inPosy, const float size, const std::string& style, const int color, const int bgcolor, const int inVpid); 243 void setLabelY(const std::string& label, const float inPosx, const float inPosy, const float size, const std::string& style, const int color, const int bgcolor, const int inVpid); 244 void setTitle(const std::string& label, const float inPosx, const float inPosy, const float size, const std::string& style, const int color, const int bgcolor, const int inVpid); 245 245 void setViewportBackgroundColor(const int bgcolor, const int inVpid); 246 246 void plot(); -
trunk/src/python_Plotter2.cpp
r2896 r2909 82 82 .def("set_mask_x",&Plotter2::setMaskX) 83 83 .def("set_arrow",&Plotter2::setArrow) 84 .def("set_ annotation",&Plotter2::setAnnotation)84 .def("set_text",&Plotter2::setText) 85 85 .def("set_label_x",&Plotter2::setLabelX) 86 86 .def("set_label_y",&Plotter2::setLabelY)
Note:
See TracChangeset
for help on using the changeset viewer.