При исследовании и изучении закономерностей важную роль играет визуальное отображение с помощью графиков. В популярных среди научного сообщества языках программирования, таких как R и Python, для визуализации предназначена специальная функция plot. С её помощью можно рисовать линии, точечные распределения и гистограммы для наглядного представления закономерностей. В MQL5 вы можете делать всё то же самое с помощью класса CGraphics.
//+------------------------------------------------------------------+//| Class CAxis |//| Usage: class for create axes on a two-dimensional graphics |//+------------------------------------------------------------------+class CAxis
{
private:
...
double m_min_grace; // "grace" value applied to the minimum data rangedouble m_max_grace; // "grace" value applied to the maximum data rangepublic:
CAxis(void);
~CAxis(void);
...
double MaxGrace(void) const { return(m_max_grace); }
void MaxGrace(constdoublevalue) { m_max_grace=value; }
...
};
并立即提出一个愿望:我可以一次为两个轴做一个斜的(有角度的)字体(my_graphic.FontSet("Arial",10,0,180);)。难道不可能使这种字体(或角度)的设置方法成为一个单独的轴?
下午好!为了改变轴的字体斜度,你需要在CAxis类中增加三个新的字段和六个新的方法来维护它们,而目前它已经看起来有点过载了。所以我不能说这样的功能是否会被添加。在你的情况下,我可以建议你实现CGraphics的 后代,并在其中覆盖CreateAxes方法(重写两行字)。
你能告诉我如何在科学图表中添加文本 吗?无论我怎么努力,都没有用。下面是例子中稍作修改的代码。
总的来说,非常感谢CGraphic 上有 "众多 "的例子!!。
你必须在一些小事上花费大量的时间,直到你吐口水,骂人,把一切都扔到地狱里去......。
事实上,非常感谢你在CGraphic上提供的 "众多 "例子!!!。
但也有一些例子,例如:https://www.mql5.com/ru/articles/2866 和https://www.mql5.com/ru/docs/standardlibrary/mathematics/stat
很少。而且我在那里没有找到TextAdd()或LineAdd()。
很少。而我在那里没有找到TextAdd()或LineAdd()。
下午好!解决你的问题就在这几行。
在图形库的额外功能中,我们还应该提到允许你向图表添加新元素的方法。
- TextAdd()- 将文本添加到图表的任意位置,坐标必须设置为真实比例。使用FontSet方法来微调显示的文本。
- LineAdd()- 在图表的任意位置添加一条线,坐标必须设置为真实比例。
- MarksToAxisAdd()- 在指定的坐标轴上添加新标记。
需要注意的是,添加这些元素的数据并不存储在任何地方,因此,在图表上绘制新的曲线或重新绘制后,它们都会被覆盖。你调用graphic.CurvePlotAll()方法来覆盖你想画的文字。正确的方法如下。
结果。
罗曼-科诺佩尔科,非常感谢你!
是的,我认为用图形工作的这种特殊性应该在文档中说明。
鉴赏家的问题是这样的。有一个基于科学CGraphic的 滴答图。
它需要。
1)按MT中的图表缩进。这样,最后的数值就不会与图形的右边界相邻。
2)在右边而不是左边显示Y刻度。
我在方法中找不到这样的功能...
Dennis Kirichenko:
需要以下内容。
1)按MT图的方式缩进。这样,最后的数值就不会与图形的右边界相邻。
//---
这是一个看起来像什么的例子。
Dennis Kirichenko:
需要。
...
2)在右边而不是左边显示Y刻度。
没有这样的选择。如果不仅可以把刻度放在右边,而且可以显示两个独立的刻度(主刻度和辅助刻度),就像你在Excel中可以做的那样,那就更好了。
安纳托利,非常感谢你它在第1点上有帮助。是的,我错过了CAxis::MaxGrace(const double value) 轴方法。