در قلمرو هندسه محاسباتی و نظریه گراف، تولید نمودارهای مسطح یک کار جذاب و کاربردی است. نمودارهای مسطح، آنهایی که می توانند روی یک صفحه بدون هیچ لبه ای از یکدیگر رسم شوند، کاربردهای متعددی در زمینه هایی مانند طراحی مدار، تحلیل شبکه و نقشه برداری جغرافیایی دارند. به عنوان یک تامین کننده ژنراتور، من نه تنها در بخش سخت افزاری ژنراتورها به خوبی آشنا هستم، بلکه جنبه های مربوط به نرم افزار را نیز درک می کنم، به ویژه نحوه استفاده از ژنراتور در پایتون برای تولید دنباله ای از نمودارهای مسطح.
درک نمودارهای مسطح
قبل از پرداختن به پیاده سازی پایتون، داشتن درک روشنی از نمودارهای مسطح ضروری است. یک نمودار (G=(V, E)) از مجموعه ای از رئوس (V) و مجموعه ای از یال ها (E) تشکیل شده است که جفت رئوس را به هم متصل می کنند. یک گراف اگر بتوان آن را در صفحه جاسازی کرد مسطح است، به این معنی که می توان آن را روی یک سطح صاف به گونه ای ترسیم کرد که هیچ دو یال دیگری به جز در نقاط انتهایی آنها قطع نشود.
یکی از شناختهشدهترین نتایج در مورد نمودارهای مسطح، فرمول اویلر است: (v - e + f=2)، که در آن (v) تعداد رئوس، (e) تعداد یالها، و (f) تعداد وجهها (از جمله وجه خارجی) یک نمودار مسطح متصل است. این فرمول به عنوان یک محدودیت اساسی در هنگام تولید نمودارهای مسطح عمل می کند.
کتابخانه های پایتون برای تولید گراف
پایتون چندین کتابخانه قدرتمند برای کار با نمودارها ارائه می دهد که یکی از محبوب ترین آنها استnetworkx.networkxیک کتابخانه جامع برای ایجاد، دستکاری و مطالعه ساختار، دینامیک و عملکرد شبکه های پیچیده است.
برای شروع، ابتدا باید نصب کنیدnetworkxاگر قبلا این کار را نکرده اید می توانید استفاده کنیدپیپبرای نصب آن:
نصب pip networkx
تولید نمودارهای مسطح در پایتون
در اینجا یک راهنمای گام به گام در مورد نحوه استفاده آورده شده استnetworkxبرای ایجاد دنباله ای از نمودارهای مسطح:
مرحله 1: کتابخانه های لازم را وارد کنید
networkx را به عنوان nx وارد کنید matplotlib.pyplot را به صورت plt وارد کنید
مرحله 2: یک نمودار مسطح ساده ایجاد کنید
یکی از ساده ترین راه ها برای تولید نمودار مسطح استفاده از آن استgrid_2d_graphعملکرد درnetworkx. این تابع یک نمودار شبکه دو بعدی ایجاد می کند که همیشه مسطح است.
# یک نمودار شبکه ای 3x3 ایجاد کنید G = nx.grid_2d_graph(3, 3) # نمودار را رسم کنید pos = nx.spring_layout(G) nx.draw(G, pos, with_labels=True) plt.show()
در این کد ابتدا یک گراف شبکه ای 3*3 ایجاد می کنیم. سپس، ما ازطرح_بهارتابعی برای محاسبه موقعیت رئوس برای اهداف تجسم. در نهایت با استفاده از نمودار رسم می کنیمnx.drawو با استفاده از آن نمایش دهیدplt.show.
مرحله 3: نمودارهای مسطح پیچیده تری ایجاد کنید
ما همچنین میتوانیم نمودارهای مسطح پیچیدهتری را با استفاده از الگوریتمهایی مانند مثلثسازی دلونای تولید کنیم. مثلث دلونی مجموعه ای از نقاط در صفحه یک نمودار مسطح است که در آن هیچ نقطه ای در دایره دایره هر مثلثی که توسط نقاط تشکیل شده است قرار ندارد.
import numpy بهعنوان np # ایجاد مجموعهای از نقاط تصادفی = np.random.rand(10, 2) # یک نمودار مثلثسازی دلونی ایجاد کنید G = nx.Graph() از واردات فضایی. G.add_edge(tuple(points[simplex[i]]), tuple(points[simplex[j]])) # نمودار را رسم کنید pos = {node: node for node in G.nodes()} nx.draw(G, pos, with_labels=False) plt.show()
در این کد ابتدا مجموعه ای از 10 نقطه تصادفی در صفحه ایجاد می کنیم. سپس، ما ازدلونيتابع ازفضایی.فضاییبرای محاسبه مثلث دلونی این نقاط. در نهایت با اضافه کردن یال هایی بین رئوس هر مثلث در مثلث یک نمودار ایجاد می کنیم و نمودار را رسم می کنیم.
استفاده از ژنراتور برای تولید دنباله ای از نمودارهای مسطح
در پایتون، مولد یک نوع خاصی از تکرار کننده است که به شما امکان می دهد دنباله ای از مقادیر را بدون نیاز به ذخیره همه آنها در حافظه به طور همزمان ایجاد کنید. میتوانیم از یک ژنراتور برای تولید دنبالهای از نمودارهای مسطح استفاده کنیم.
def planar_graph_generator(): n = 2 while True: # ایجاد یک گراف شبکه ای G = nx.grid_2d_graph(n, n) بازده G n += 1 # ایجاد یک شی مولد graph_gen = planar_graph_generator() # تولید و نمایش 3 نمودار اول = برای G در محدوده بعدی(_3) nx.spring_layout(G) nx.draw(G, pos, with_labels=True) plt.show()
در این کد یک تابع مولد تعریف می کنیمplanar_graph_generatorکه دنباله ای از نمودارهای شبکه ای را با افزایش اندازه ایجاد می کند. سپس یک شی مولد ایجاد می کنیم و از آن استفاده می کنیمبعدیعملکردی برای تولید و نمایش 3 نمودار اول در ترتیب.
کاربردهای تولید نمودار مسطح
توانایی تولید نمودارهای مسطح کاربردهای عملی زیادی دارد. به عنوان مثال، در طراحی مدار، نمودارهای مسطح را می توان برای نمایش طرح مدارهای الکترونیکی استفاده کرد، جایی که راس ها نشان دهنده اجزا و یال ها نشان دهنده اتصالات بین آنها هستند. در تحلیل شبکه می توان از نمودارهای مسطح برای مدل سازی شبکه های حمل و نقل یا شبکه های اجتماعی استفاده کرد.


محصولات ژنراتور ما
به عنوان یک تامین کننده ژنراتور، ما طیف گسترده ای از ژنراتورهای با کیفیت بالا را برای رفع نیازهای برق شما ارائه می دهیم. چه به یک ژنراتور کوچک قابل حمل برای فعالیت در فضای باز یا یک ژنراتور برق در مقیاس بزرگ برای مصارف صنعتی نیاز داشته باشید، ما راه حل مناسبی برای شما داریم.
ماژنراتور برق 125kvaیک انتخاب قابل اعتماد برای نیازهای برق در مقیاس متوسط تا بزرگ است. توان خروجی پایدار و کارآمد را فراهم می کند و آن را برای تاسیسات صنعتی، سایت های ساخت و ساز و برق پشتیبان اضطراری مناسب می کند.
اگر به دنبال یک ژنراتور با راندمان سوخت بالا و سطح صدای کم هستید، مادیزل ژنراتور آهسته گردشیک گزینه عالی است این موتور به گونه ای طراحی شده است که با سرعت کمتری کار کند که باعث کاهش سایش و پارگی موتور و افزایش طول عمر آن می شود.
برای کسانی که به یک راه حل برق قابل حمل نیاز دارند، ماژنراتور قابل حمل 7kvaسبک است و حمل و نقل آن آسان است. این برای کمپینگ، دم زنی و سایر فعالیت های در فضای باز مناسب است.
برای تهیه با ما تماس بگیرید
اگر به محصولات ژنراتور ما علاقه مند هستید یا در مورد تولید نمودار مسطح در پایتون سؤالی دارید، لطفاً با ما تماس بگیرید. ما اینجا هستیم تا بهترین محصولات و خدمات را به شما ارائه دهیم. تیم کارشناسان ما می توانند به شما کمک کنند تا ژنراتور مناسب برای نیازهای خاص خود را انتخاب کنید و پشتیبانی فنی را در طول فرآیند خرید ارائه دهید.
مراجع
- مستندات NetworkX: https://networkx.org/documentation/stable/
- مستندات Scipy: https://docs.scipy.org/doc/scipy/
- نظریه گراف: مقدمه، نوشته داگلاس بی وست

