科学论文图表设计简明指南

需积分: 0 1 下载量 133 浏览量 更新于2024-09-09 收藏 422KB PDF 举报
“A brief guide to designing effective figures for the scientific paper.pdf”是一份关于如何在科学论文中设计高效图表的指南,由Marco Rolandi、Karen Cheng和Sarah Pérez-Kriz撰写,发表于Adv. Mater. 2011年,探讨了在科学研究中,通过有效的图形设计来增强数据传达力的重要性。 在科学研究中,图表的设计对于传达复杂的数据和理论至关重要。本指南可能涵盖了以下几个关键知识点: 1. **清晰性与简洁性**:有效的科学图表应该简洁明了,避免过多的文字解释,使读者能够迅速理解其含义。设计师需要考虑如何用最少的元素展示最重要的信息。 2. **选择合适的图表类型**:不同的数据和观点需要不同类型的图表来展示,如折线图用于显示趋势,散点图用于展示两个变量的关系,柱状图或饼图用于比较数值。选择正确的图表类型能更好地呈现数据的结构。 3. **颜色的使用**:颜色在图表中起着引导视线和区分不同数据集的作用。明智地使用颜色可以帮助突出关键信息,但也要考虑色盲读者的需求,确保即使不使用颜色,图表也具有可读性。 4. **标示与标签**:每个图表都应包含清晰的标题,简短描述图表内容;坐标轴需有明确的标签和单位,确保读者无需猜测数据的含义。 5. **视觉层次**:通过大小、线条粗细、填充图案等视觉元素创建层次感,引导读者的注意力,帮助他们理解图表的重点。 6. **数据的精确性和完整性**:图表中的数据应准确无误,避免误导读者。所有数据点和计算都应有源可溯,确保图表的科学严谨性。 7. **图例和注释**:图例用来解释图表中的符号和颜色代码,注释则用于解释特定区域或细节,它们是图表不可或缺的部分。 8. **对比与参照**:对比可以帮助读者直观地看到差异,而参照线或基准可以帮助理解数据的相对位置和变化。 9. **适应性**:考虑到图表将在各种媒介和尺寸下展示,设计时应考虑其在印刷版和电子版上的表现,以及在不同屏幕分辨率下的可读性。 10. **创新与传统**:在追求创新设计的同时,也要遵循科学出版物的规范和标准,保持一致性,使图表易于理解且符合专业标准。 这份指南旨在帮助科学家和研究者提升他们的图表设计技巧,使研究成果的传达更加高效、准确,从而增加其科学论文的影响力和说服力。通过学习这些原则和实践,研究人员可以更有效地将他们的发现呈现给同行和公众。

给下列程序添加英文注释:namespace nav_core { /** * @class BaseGlobalPlanner * @brief Provides an interface for global planners used in navigation. All global planners written as plugins for the navigation stack must adhere to this interface. / class BaseGlobalPlanner{ public: /* * @brief Given a goal pose in the world, compute a plan * @param start The start pose * @param goal The goal pose * @param plan The plan... filled by the planner * @return True if a valid plan was found, false otherwise / virtual bool makePlan(const geometry_msgs::PoseStamped& start, const geometry_msgs::PoseStamped& goal, std::vector<geometry_msgs::PoseStamped>& plan) = 0; /* * @brief Given a goal pose in the world, compute a plan * @param start The start pose * @param goal The goal pose * @param plan The plan... filled by the planner * @param cost The plans calculated cost * @return True if a valid plan was found, false otherwise / virtual bool makePlan(const geometry_msgs::PoseStamped& start, const geometry_msgs::PoseStamped& goal, std::vector<geometry_msgs::PoseStamped>& plan, double& cost) { cost = 0; return makePlan(start, goal, plan); } /* * @brief Initialization function for the BaseGlobalPlanner * @param name The name of this planner * @param costmap_ros A pointer to the ROS wrapper of the costmap to use for planning / virtual void initialize(std::string name, costmap_2d::Costmap2DROS costmap_ros) = 0; /** * @brief Virtual destructor for the interface */ virtual ~BaseGlobalPlanner(){} protected: BaseGlobalPlanner(){} }; }; // namespace nav_core #endif // NAV_CORE_BASE_GLOBAL_PLANNER_H

2023-06-12 上传

给下列程序添加注释namespace nav_core { /** * @class BaseGlobalPlanner * @brief Provides an interface for global planners used in navigation. All global planners written as plugins for the navigation stack must adhere to this interface. */ class BaseGlobalPlanner{ public: /** * @brief Given a goal pose in the world, compute a plan * @param start The start pose * @param goal The goal pose * @param plan The plan... filled by the planner * @return True if a valid plan was found, false otherwise */ virtual bool makePlan(const geometry_msgs::PoseStamped& start, const geometry_msgs::PoseStamped& goal, std::vector<geometry_msgs::PoseStamped>& plan) = 0; /** * @brief Given a goal pose in the world, compute a plan * @param start The start pose * @param goal The goal pose * @param plan The plan... filled by the planner * @param cost The plans calculated cost * @return True if a valid plan was found, false otherwise */ virtual bool makePlan(const geometry_msgs::PoseStamped& start, const geometry_msgs::PoseStamped& goal, std::vector<geometry_msgs::PoseStamped>& plan, double& cost) { cost = 0; return makePlan(start, goal, plan); } /** * @brief Initialization function for the BaseGlobalPlanner * @param name The name of this planner * @param costmap_ros A pointer to the ROS wrapper of the costmap to use for planning */ virtual void initialize(std::string name, costmap_2d::Costmap2DROS* costmap_ros) = 0; /** * @brief Virtual destructor for the interface */ virtual ~BaseGlobalPlanner(){} protected: BaseGlobalPlanner(){} }; }; // namespace nav_core #endif // NAV_CORE_BASE_GLOBAL_PLANNER_H

2023-06-12 上传