গ্রাফ তত্ত্ব - বিশ্লেষণ এবং চাক্ষুষ


22

আমি নিশ্চিত নই যে বিষয়টি ক্রসভিলেটেড আগ্রহের মধ্যে প্রবেশ করেছে। আপনি আমাকে বলবেন।

আমাকে গ্রাফ ( গ্রাফ তত্ত্ব থেকে ) অধ্যয়ন করতে হবে অর্থাৎ। আমার সংযুক্ত কয়েকটি বিন্দু রয়েছে। আমার কাছে সমস্ত বিন্দু সহ একটি টেবিল রয়েছে এবং প্রতিটি বিন্দুতে নির্ভর করে। (এর সাথে আমার আরও একটি সারণীও রয়েছে)

আমার প্রশ্নগুলি হল:
সহজেই অধ্যয়ন করার জন্য কোনও ভাল সফ্টওয়্যার (বা একটি আর প্যাকেজ) নেই?
গ্রাফ প্রদর্শন করার কোনও সহজ উপায় আছে?


আমি cran.r-project.org/web/packages/graph/vignettes/ographic.pdf ব্যবহার করার চেষ্টা করেছি কিন্তু এটি "Seragiziz" প্যাকেজটি আর উপলব্ধ নেই ams কারও কি আর সমাধান আছে?
রকসায়েন্স

1
আরগ্রাভিজ বায়োকন্ডাক্টরে রয়েছে: বায়োকন্ডাক্টর.আর / প্যাকেজ
রব হ্যান্ডম্যান

1
ধন্যবাদ! গ্রাফভিজ নিখুঁত এবং খুব নমনীয়, আমি এটি ইন্টারফেসের সাথে আরগ্রাভিজ-এ ব্যবহার করি এবং এটি দুর্দান্ত কাজ করে।
রকসায়েন্স

উত্তর:


15

আইগ্রাফ একটি খুব আকর্ষণীয় ক্রস ল্যাঙ্গুয়েজ (আর, পাইথন, রুবি, সি) লাইব্রেরি। এটি আপনাকে নির্দেশবিহীন এবং নির্দেশিত গ্রাফগুলির সাথে কাজ করার অনুমতি দেয় এবং ইতিমধ্যে বাস্তবায়িত বেশ কয়েকটি বিশ্লেষণ অ্যালগরিদম রয়েছে।


1
(+1) দেখে মনে হচ্ছে আপনার পরে আমার প্রতিক্রিয়া এসেছে। আপনার প্রতিক্রিয়াটি কিছুটা আলাদা দৃষ্টিকোণ (ক্রস-প্ল্যাটফর্ম, অ্যালগরিদম) হাইলাইট করার সাথে সাথে আমার প্রতিক্রিয়াগুলি তেমন অপ্রয়োজনীয় নয় বলে মনে হয় তবে আমি কোনও সমস্যা ছাড়াই আমার অপসারণ করতে পারি।
chl

14

নির্দেশিত ও পুনর্নির্দেশিত গ্রাফ, ঘটনা / সংলগ্ন ম্যাট্রিক্স ইত্যাদি উপস্থাপনের জন্য গ্রাফ ছাড়াও বিভিন্ন প্যাকেজ রয়েছে ; জিআর টাস্ক ভিউতে উদাহরণস্বরূপ দেখুন।

ভিজ্যুয়ালাইজেশন এবং বেসিক গণনার জন্য, আমি মনে করি যে ইগ্রাফ প্যাকেজটি নির্ভরযোগ্য একটি, আরগ্রাভিজ ছাড়াও (বায়োসি-র উপর @ রব দ্বারা নির্দেশিত)। সচেতন থাকুন যে পরবর্তীকর্মীরা সঠিকভাবে কাজ করার জন্য, গ্রাফভিজ অবশ্যই ইনস্টল করা উচিত। Igraph প্যাকেজ ভাল লেআউট তৈরি, অনেক মত জন্য চমৎকার আলগোরিদিম হয়েছে Graphviz

এখানে ব্যবহারের উদাহরণ, একটি জাল সংলগ্ন ম্যাট্রিক্স থেকে শুরু:

adj.mat <- matrix(sample(c(0,1), 9, replace=TRUE), nr=3)
g <- graph.adjacency(adj.mat)
plot(g)

বিকল্প পাঠ


আপনার উত্তরের জন্য ধন্যবাদ. গ্রাফভিজ আর এর সাথে ইনস্টল করা সহজ নয় তবে এটি একটি দুর্দান্ত গ্রন্থাগার হতে পারে
রকসায়েন্স

এফওয়াইআই আমি এখন যা করছি তা হ'ল আমি আর এর সাথে গ্রাফভিজ কোডটি উত্পন্ন করি এবং মিডিয়াউইকিতে আমি মিডিয়াউইকি গ্রাফিকভিজ এক্সটেনশন ব্যবহার করে এটি পড়েছি। (আরগ্রাফিজ প্যাকেজটি ইনস্টল করা সহজ নয় এবং আর এর শেষ সংস্করণটি নিয়ে কাজ করে না)
রকসায়েন্স

"প্যাকেজ 'গ্রাফ' সিআরএএন সংগ্রহস্থল থেকে সরানো হয়েছে।"
বারটেকটার্টানুস

8

যা বলা হয়েছে তা বাদ দিয়ে, একা ভার্চুয়ালাইজেশন টাস্কের জন্য (এবং আর এর বাইরেও), আপনি গেফিকে পরীক্ষা করতে আগ্রহী হতে পারেন ।


8

আর একটি বিকল্প স্ট্যাটনেট প্যাকেজ। এসএনএ-তে সাধারণভাবে ব্যবহৃত সমস্ত ব্যবস্থার জন্য স্ট্যাটনেটের কাজ রয়েছে এবং ইআরজি মডেলগুলিও অনুমান করতে পারে। আপনার যদি কোনও প্রান্ত তালিকায় আপনার ডেটা থাকে তবে ডেটাতে নীচে পড়ুন (ধরে নিলে আপনার ডেটা ফ্রেমটিকে "এজলিস্ট" হিসাবে লেবেল দেওয়া হয়েছে):

net <- as.network(edgelist, matrix.type = "edgelist", directed = TRUE) #if the network is directed, otherwise: directed = FALSE

যদি আপনার ডেটা সংলগ্ন ম্যাট্রিক্সে থাকে তবে আপনি ম্যাট্রিক্স.টাইপ যুক্তিকে "সংলগ্ন" দিয়ে প্রতিস্থাপন করুন:

net <- as.network(edgelist, matrix.type = "adjacency", directed = TRUE)

স্ট্যাটনেট প্যাকেজটিতে কিছু খুব সুন্দর প্লট করার ক্ষমতা রয়েছে। একটি সহজ প্লট করতে সহজভাবে টাইপ করুন:

gplot(net)

নোডগুলির মধ্যবর্তীতা কেন্দ্রিকতা অনুযায়ী স্কেল করতে, কেবল করুন:

bet <- betweenness(net)
gplot(net, vertex.cex = bet)

ডিফল্টরূপে জিপ্লট ফাংশন নোড স্থাপনের জন্য ফ্রচটারম্যান-রেইনগোল্ড অ্যালগরিদম ব্যবহার করে তবে মোড অপশন থেকে এটি নিয়ন্ত্রণ করা যায়, উদাহরণস্বরূপ নোডের স্থান নির্ধারণের জন্য এমডিএস ব্যবহার করতে:

gplot(net, vertex.cex, mode = "mds")

বা একটি বৃত্ত বিন্যাস ব্যবহার করতে:

gplot(net, vertex.cex, mode = "circle")

আরও অনেক সম্ভাবনা রয়েছে এবং এই গাইডটি বেশিরভাগ বুনিয়াদি বিকল্পগুলি জুড়ে। একটি স্ব অন্তর্ভুক্ত উদাহরণের জন্য:

net <- rgraph(20) #generate a random network with 20 nodes
bet <- betweenness(net) #calculate betweenness scores
gplot(net) #a simple plot
gplot(net, vertex.cex = bet/3) #nodes scaled according to their betweenness centrality, the measure is divided by 3 so the nodes don't become to big.
gplot(net, vertex.cex = bet/3, mode = "circle") #with a circle layout
gplot(net, vertex.cex = bet/3, mode = "circle", label = 1:20) #with node labels

(+1) এই প্যাকেজটি কখনই ব্যবহার করা হয়নি, তবে আপনার ওভারভিউটি পরামর্শ দেয় আমি এটি চেঁচিয়ে দেখতে চাই। প্রথম দেখায় ভাল লাগে।
chl

3

একটি অনুরূপ প্রশ্ন cstheory উপর জিজ্ঞেস করা হলো, যদি আপনি নির্দিষ্টভাবে আগ্রহী প্ল্যানার গ্রাফ বা গ্রন্থ-পঁজীর কল্পনা

গেফির এখানে ইতিমধ্যে উল্লেখ করা হয়েছিল, তবে এটি কয়েক জন সিস্টেরিতেও সুপারিশ করেছিল, তাই আমি মনে করি এটি একটি ভাল পছন্দ।

অন্যান্য শীতল বিকল্পের মধ্যে রয়েছে:

  • ফ্লেয়ার কিছু সত্যই শীতল দৃশ্য সরঞ্জাম সরবরাহ করে এবং রিপোর্ট এবং কাগজপত্রগুলির জন্য খুব সুন্দর গ্রাফিক্স তৈরি করে।
  • সাইপটোস্কেপের কয়েকটি শক্তিশালী বিশ্লেষণ এবং চাক্ষুষ সরঞ্জাম রয়েছে। এটি রসায়ন এবং আণবিক জীববিজ্ঞানের জন্য বিশেষত ভাল।
  • এই ওয়েবসাইটটি আরও অনেক দুর্দান্ত চাক্ষুষ সরঞ্জাম এবং লাইব্রেরিগুলির লিঙ্ক সরবরাহ করে (যদিও এটি আর এর জন্য নয়)।

2

আমি নোডএক্সএলকে খুব সহায়ক এবং ব্যবহারযোগ্য বলে মনে করেছি। এটি একটি এমএস এক্সেল টেমপ্লেট যা কোনও গ্রাফের সহজে আমদানি / রফতানি, প্রান্ত / শীর্ষাংশের বিন্যাস, কিছু মেট্রিক গণনা করে, কিছু ক্লাস্টারিং অ্যালগরিদম থাকে provides আপনি সহজেই শৃঙ্খলা হিসাবে কাস্টম চিত্রগুলি ব্যবহার করতে পারেন।
আমার জন্য আরেকটি সহায়ক সরঞ্জাম ছিল মাইক্রোসফ্ট অটোমেটিক গ্রাফ বিন্যাস যা ভাল লেআউট সরবরাহ করে তা অনলাইনে চেষ্টা করা যেতে পারে (এসভিজি সমর্থন করে এমন একটি ব্রাউজারের সাথে)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.