如何改变wxFreeChart中的系列颜色和画笔?
How to change the serie colur and pen in wxFreeChart?
我在我的项目中使用了 wxFreeChart 库。但是我无法更改 XY 数据系列中的颜色和线型。在文档和示例中都没有此类功能的示例。也没有直接的功能可以做到这一点。有没有人有使用这个库的经验来说明它是否可能?
是的,可以为 XY 折线图设置系列颜色和笔类型。
这些属性是通过 XYLineRenderer
class 设置的。文档确实涵盖了这一点,但您必须单击 "List all members" 才能看到它们。当前文档可在 XYLineRenderer Members.
下找到
对于简单的更改,您可以使用 XYDataset::GetRenderer()
方法访问 XYLineRenderer
。此 returns 一个 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 *color)
.
设置任何渲染器的颜色
注意:我对 wxFreeChart 在这些函数中获取指针的方式不太满意。这个项目没有得到积极维护,但我想在某个时候分叉它并更新 API 以与现代版本的 C++ 和 wxWidgets 更加一致。
我在我的项目中使用了 wxFreeChart 库。但是我无法更改 XY 数据系列中的颜色和线型。在文档和示例中都没有此类功能的示例。也没有直接的功能可以做到这一点。有没有人有使用这个库的经验来说明它是否可能?
是的,可以为 XY 折线图设置系列颜色和笔类型。
这些属性是通过 XYLineRenderer
class 设置的。文档确实涵盖了这一点,但您必须单击 "List all members" 才能看到它们。当前文档可在 XYLineRenderer Members.
对于简单的更改,您可以使用 XYDataset::GetRenderer()
方法访问 XYLineRenderer
。此 returns 一个 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 *color)
.
注意:我对 wxFreeChart 在这些函数中获取指针的方式不太满意。这个项目没有得到积极维护,但我想在某个时候分叉它并更新 API 以与现代版本的 C++ 和 wxWidgets 更加一致。