我正在使用 System.Web.UI.DataVisualization.Charting 组件来创建以 pdf 形式呈现的图表。目前图表呈现完美,但我想将其横向显示在页面上,即将整个图表旋转 90 度。
创建图表后我想将其旋转 90 度? 创建图表后这可能吗?或者我在创建图表时必须做的事情,即在创建过程中将所有 Y\X 轴旋转 90 度?
我认为旋转 ChartAreas 是一种可行的方法,但这并没有达到我想要的结果
我还从图表创建了一个图像,然后尝试使用下面的代码旋转创建的 png 图像,但是错误地调整了图像大小,即使其变大。然而理想情况下,我只想旋转原始图表而不是沿着这条路线走下去
chartImage.RotateFlip(RotateFlipType.Rotate90FlipNone);
虽然仍然是一种妥协,但您可以尝试另一种方法来强制图像尺寸相同,以解决您面临的调整大小问题。您可以明确地制作具有所需尺寸的新图像,然后在原始图像上进行绘制,而不是旋转现有图像。比如:
// 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