我在我的项目中使用wxFreeChart库。但是我无法更改 XY 数据系列中的颜色和线条类型。在文档和示例中都没有此类功能的示例。而且也没有简单的函数可以做到这一点。有没有人有这个库的经验来说明它是否可能?
最佳答案
是的,可以为 XY 折线图设置系列颜色和笔类型。
这些属性是通过XYLineRenderer
类设置的。该文档确实涵盖了这一点,但您必须单击“列出所有成员”才能查看它们。当前文档可在 XYLineRenderer Members 下找到。 .
对于简单的更改,您可以使用 XYDataset::GetRenderer()
方法访问 XYLineRenderer
。这将返回一个 XYRenderer*
,您需要将其转换为 XYLineRenderer*
才能设置画笔类型。当然,您可以先创建 XYLineRenderer*
并将其传递给 XYDataset::SetRenderer
方法。
这是一个例子:
// Set the colour and pen of the first series.
static_cast<XYLineRenderer*>(dataset->GetRenderer())
->SetSeriePen(0, new wxPen(*wxRED, 5, wxPENSTYLE_SHORT_DASH));
// Set the colour and pen of the second series.
static_cast<XYLineRenderer*>(dataset->GetRenderer())
->SetSeriePen(1, new wxPen(*wxBLUE, 1, wxPENSTYLE_DOT_DASH));
SetSeriePen
出于显而易见的原因仅适用于 XYLineRenderer
,但您可以使用 Renderer::SetSerieColour(size_t serie, wxColour *颜色)
。
注意:我对 wxFreeChart 在这些函数中获取指针的方式不太满意。该项目并未得到积极维护,但我希望在某个时候对其进行 fork 并更新 API,以便与现代版本的 C++ 和 wxWidgets 更加一致。
关于wxwidgets - 如何改变wxFreeChart中的系列颜色和画笔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39064439/