C# 调整图表大小后如何调整datavisualization.charting的轴比例?
我将图表从基本上的72 dpi更新为300 dpi。这是因为我正在使用itextsharp将图像添加到我的pdf中,但质量很差。因此,我将图像的大小增加了3倍,图像看起来确实更好,但问题出在这里 新闻部有所增加,但细节变得很难看到 原始图表图像 重构图表图像 代码 这就是我调整图表大小的方法C# 调整图表大小后如何调整datavisualization.charting的轴比例?,c#,image,charts,scale,data-visualization,C#,Image,Charts,Scale,Data Visualization,我将图表从基本上的72 dpi更新为300 dpi。这是因为我正在使用itextsharp将图像添加到我的pdf中,但质量很差。因此,我将图像的大小增加了3倍,图像看起来确实更好,但问题出在这里 新闻部有所增加,但细节变得很难看到 原始图表图像 重构图表图像 代码 这就是我调整图表大小的方法 private static System.Drawing.Bitmap GetChartBitmap() { System.Drawing.Rectangl
private static System.Drawing.Bitmap GetChartBitmap()
{
System.Drawing.Rectangle targetBounds = new System.Drawing.Rectangle(0, 0, chart_runs.Width, chart_runs.Height);
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(targetBounds.Width, targetBounds.Height);
bitmap.SetResolution(1000, 1000);
chart_runs.DrawToBitmap(bitmap, targetBounds);
bitmap.Save(@"C:\Temp\OriginalChartImage.bmp");
System.Drawing.Bitmap bitmap3 = new System.Drawing.Bitmap(1650, 990);
bitmap3.SetResolution(300, 300);
chart_runs.DrawToBitmap(bitmap3, new System.Drawing.Rectangle(0, 0, 1650, 990));
bitmap3.Save(@"C:\Temp\RefactoredChartImage.png");
//This stuff below is for my code elsewhere. Using bitmap3 to be added to pdf.
//chart_runs.DrawToBitmap(bitmap, targetBounds);
string path = System.IO.Path.GetTempPath();
bitmap1.Save(path + @"\Image.png");
return bitmap1;
}
我查看了Microsoft msdn示例,但没有找到任何解决我问题的方法。也就是说,我如何增加标签的大小,以便人们可以再次阅读它们。或者,有没有办法提高DPI并保持第一张图片中使用的相同的标签x和标签y比例?也就是说,有一个更大的图像和300DPI,但比例从0到300乘以20,而不是像我的重构图片那样的5
试图修复
- 缩放轴?看见我认为这是行不通的。这里没有多少成功李>
- 一直在尝试在Chart类中找到一种方法,看看是否有一种方法可以指定严格的比例。(y刻度为20秒,x刻度为15秒)李>
- 大多数在线资源都很乐意增加图片的规模,然后走开。诸如此类
我将非常感谢任何帮助和帮助 两个不同的问题,两个不同的答案。最简单的方法是将轴标签的字体大小更改为更大。这可以通过
chart1.ChartAreas[0].AxisX.LabelStyle.Font = new Font...;
如果不这样做,无论您做什么,您的标签都不会可读,这只是因为您更改了DPI(这正是更改DPI所做的)
如果希望标签在y轴上每隔20个单位显示一次,在x轴上每隔15个单位显示一次,则可以使用轴的Interval
和IntervalType
属性。IntervalType
用于显示DateTime
对象:
chart1.ChartAreas[0].AxisX.Interval = 15;
chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Seconds;
chart1.ChartAreas[0].AxisY.Interval = 20;
你关于缩放轴的第一个链接实际上是放大或缩小,这就是你没有成功的原因。我可能会说,我最终会找到这个答案,但只是在浪费了潜在的惊人时间之后。谢谢你把我从沟里抓出来,并把我指回到路上去。