System.Web.UI.DataVisualization.Charting 将整个图表旋转 90 度

问题描述 投票:0回答:1

我正在使用 System.Web.UI.DataVisualization.Charting 组件来创建以 pdf 形式呈现的图表。目前图表呈现完美,但我想将其横向显示在页面上,即将整个图表旋转 90 度。

创建图表后我想将其旋转 90 度? 创建图表后这可能吗?或者我在创建图表时必须做的事情,即在创建过程中将所有 Y\X 轴旋转 90 度?

我认为旋转 ChartAreas 是一种可行的方法,但这并没有达到我想要的结果

我还从图表创建了一个图像,然后尝试使用下面的代码旋转创建的 png 图像,但是错误地调整了图像大小,即使其变大。然而理想情况下,我只想旋转原始图表而不是沿着这条路线走下去

chartImage.RotateFlip(RotateFlipType.Rotate90FlipNone);

charts visualization
1个回答
0
投票

虽然仍然是一种妥协,但您可以尝试另一种方法来强制图像尺寸相同,以解决您面临的调整大小问题。您可以明确地制作具有所需尺寸的新图像,然后在原始图像上进行绘制,而不是旋转现有图像。比如:

// load your original, horizontal chart image
var chartImage = Image.FromFile(imagePath);

// make the new rotated chart image with same dimensions as original
var rotatedImage = new Bitmap(chartImage.Height, chartImage.Width);

using (var g = Graphics.FromImage(rotatedImage))
{
    g.TranslateTransform(chartImage.Height, 0);
    g.RotateTransform(90.0F);
    g.DrawImage(chartImage, new Rectangle(0, 0, chartImage.Width, chartImage.Height));
}

// save the rotated image
var rotatedImagePath = "path_to_rotated_image.png";
rotatedImage.Save(rotatedImagePath);

// access the new image for display
© www.soinside.com 2019 - 2024. All rights reserved.