1398-03-09 19:57 رسم نمودار در سی شارپ-فوری
tararz

 
سلام دوستان
وقتتون بخیر
من یه پروژه رسم نمودار دارم که با #windows form c نوشتم
مشکلی که وجود داره اینه که میخام 4 یا 6 تا محور y داشته باشم
ینی multiple Y Axis ولی نمیدونم چطور این کار رو انجام بدم یا از چه کامپوننتی استفاده کنم
ممنون میشم اگر راهنمایی کنید
1398-03-09 23:01
حاجی شریفی
مؤسس سایت
 
سلام
اول در خصوص کنترلر برای WinForm میتوانید از کنترلر رایگان خود مایکروسافت استفاده کنید.
کتابخانه System.Windows.Forms.DataVisualization.dll که میتوانید از AddReference و برگه Assemblies پیدایش کنید.
و یا به Toolbox اضافه اش کنید.
(این موارد که خیلی ساده است، گمان نمیکنم مشکلی داشته باشید؟)

واما میرسیم به اصل سوال تان...

دسته ها یا Series
در نمودارها یک بحث Series ها را داریم.
هر Serie مجموعه ای از اطلاعات آماری است.
مثلا دسته اطلاعات (Serie) فروش (Y-Axis) پردازنده های اینتل در سه ماه اول (X-Axis) سال فلان
یک دسته دیگرمیتواند شامل فروش (Y-Axis) گوجه فرنگی در سه ماه اول (X-Axis) سال فلان باشد!
شاید در ظاهر پردازنده با گوجه فرنگی رابطه ای نداشته باشد! ولی نکته مهم آن است که محور های X و Y هر دو یکی است.
محور X-Axis شامل روزهای سه ماه مدنظر است و محور Y-Axis شامل مبلغ فروش است.
در این حالت ما دو Serie دارم ولی با یک محور واحد.

ما معمولا میخواهیم در یک نمودارد چندین Serie را با هم نشان دهیم، این خیلی عادی است.
مثلا میخواهیم فروش چند محصول مهم را با هم در یک نمودار نشان دهیم و هر کدام خط یا مساحت زیر نمودار خودش را داشته باشد و راحت با هم مقایسه شان کنیم.
ولی در همه این ها ، اغلب محورها یگانه است.
یعنی برای همه Series هایمان Y-Axis همیشه مبلغ است.
واین منطقی است، ما مبلغ یک Serie را با مبلغ Serie دیگر با هم دیده و مقایسه میکنیم.
حدس میزنم نیاز شما هم همین است و گرچه گفته اید محور Y ولی احتمالا منظورتان همان Serie خودمان است.

محور یا Axis
ولی وجود محورهای متفاوت کاربرد کمتری دارد و مقایسه بصری را سخت میکند.
وجود چند محور یعنی مقایسه اعداد از جنس متفاوت با یکدیگر.
در این شرایط دیگر نمیتوان به بلندی ارتفاع نمودار ها اعتماد کرد
مانند این است که بخواهید مبلغ را با سرعت مقایسه کنید و...
تمام حرفم آن است که در این شرایط دو عدد از جنس متفاوت دارید و...

و به عنوان جواب نهایی باید بگویم که کنترلر فوق از دو محور مستقل X در پایین و بالا و دو محور مستقل Y در چپ و راست پشتیبانی میکند.

خلاصه
مجدد تاکید میکنم که شما میتوانید هر تعداد Serie داشته باشید ولی حداکثر میتوانید دومحور مختصات داشته باشید.
البته شاید شرکت های دیگر کنترلرهایی ارائه کرده باشند که شرایط و ویژگی های متفاوتی داشته باشند ولی من اطلاعی ندارم.

نمونه کدهای مربوطه را میتوانید از لینک زیر دانلود کنید:
https://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=4418

موفق باشید.
1398-03-11 01:13
tararz

 
دوست عزیر بسیار سپاسگزارم از راهنماییتون
مفهوم سریز جا افتاده
پروژه طراحی شده و تموم شده ولی مسیله ایی که هست داده هایی که دارم هرکدوم رنج های مختلفی دارن مثلا 4 رنج مختلف که این چهار رنج چهارتا لیبل a b c d داره
نمودار الان با دو محور y در سمت چپ و راست جواب میده ولی ابزاری که استفاده کردم اجازه بیشتر از دوتا محور نمیده
نمونه مدنظرم چهارتا محور y که دوتا سمت راست و دوتا سمت چپ هست که هر مجور رنج خاصی داره
1398-03-12 00:08
حاجی شریفی
مؤسس سایت
 
سلام
به صورت عادی کنترلر Chart فقط از دومحور Primary و Secondary پشتیبانی میکند.
ولی یک حقه کوچک میتوان زد ...
کنترلر از یک مفهوم Chart-Area هم پشتیبانی میکند که اجازه میدهد چند نمودار مستقل توسط یک کنترلر رسم شود.
اگر این Chart-Area ها را (مشابه تصویر زیر) روی هم بیاندازیم میتوانیم چند محور مختصات هم داشته باشیم.


نمونه کد
MSChartMultipleYAxes.zip 34KB

امیدوارم مشکل تان حل شده باشد.
شب خوش.

1398-03-26 22:13
tararz

 
جناب حاجی شریفی اگه ممکن باشه میلتون رو محبت کنید برام بفرستید که نمونه رو براتون ارسال کنم برای توضیحات بیشتر
1398-03-27 09:57
حاجی شریفی
مؤسس سایت
 
سلام
نقل قول نوشته شده توسط: tararz
... اگه ممکن باشه میلتون رو محبت کنید برام بفرستید ...