পাইথনে আমি কীভাবে একটি ইন্টারেক্টিভ পিসিএ স্ক্যাটারপ্ল্লট তৈরি করব?


11

Matplotlib গ্রন্থাগার বিশেষত Jupyter নোটবুক ভিতরে খুব সক্ষম কিন্তু interactiveness অভাব আছে। আমি প্লট.লির মতো একটি ভাল অফলাইন প্লটিং সরঞ্জাম চাই ।


3
আমি এ জাতীয় জিনিসগুলির সাথে পারদর্শী নই, সুতরাং আমি সত্যিই একটি ভাল উত্তর লিখতে পারি না, তবে আপনি একবার দেখে নিতে পারেন ipywidgets( github.com/ipython/ipywidgets/blob/master/docs/source/example এ উদাহরণ /… ) বা bokeh( bokeh.pydata.org/en/latest )।
Torbjørn টি।

উত্তর:


10

এমপিএলডি 3 নামে একটি দুর্দান্ত লাইব্রেরি রয়েছে যা ইন্টারেক্টিভ ডি 3 প্লট তৈরি করে।

এই কোডটি জনপ্রিয় আইরিস ডেটাসেটের একটি এইচটিএমএল ইন্টারেক্টিভ প্লট তৈরি করে যা জুপিটার নোটবুকের সাথে সামঞ্জস্যপূর্ণ। পেইন্ট ব্রাশটি নির্বাচন করা হলে, এটি আপনাকে সমস্ত প্লটের মধ্যে হাইলাইট করার জন্য ডেটার একটি উপসেট নির্বাচন করতে দেয়। যখন ক্রস-তীরটি নির্বাচন করা হয়, এটি আপনাকে ডেটা পয়েন্টকে মাউসওভার করতে এবং মূল ডেটা সম্পর্কে তথ্য দেখতে দেয়। অনুসন্ধানের তথ্য বিশ্লেষণ করার সময় এই কার্যকারিতাটি খুব কার্যকর।

প্ল্যাট হিসাবে matplotlib.pyplot আমদানি করুন
এনপি হিসাবে নাম্বার আমদানি করুন
পিডি হিসাবে পান্ডস আমদানি করুন
এসবি হিসাবে সমুদ্র সৈকত আমদানি করুন
এমপিএলডি 3 আমদানি করুন
এমপিএলডি 3 আমদানি প্লাগইন থেকে
% matplotlib ইনলাইন

আইরিস = এসবি.লোড_ড্যাটাসেট ('আইরিস')
sklearn.pre প্রসেসিং আমদানি স্ট্যান্ডার্ডস্কেলার থেকে
এক্স = পিডি.গেট_ডমি (আইরিস)
এক্স_স্কাল = স্ট্যান্ডার্ডস্কেলার ()। ফিট_ট্রান্সফর্ম (এক্স)

ম্লান = 3
sklearn.decomposition আমদানি পিসিএ থেকে
পিসিএ = পিসিএ (এন_ উপাদানগুলি = ম্লান)
Y_sklearn = pca.fit_transfor (এক্স_স্কাল)

# আমাদের কাস্টম লেবেলগুলি নিয়ন্ত্রণ করতে কিছু সিএসএস সংজ্ঞায়িত করুন
সিএসএস = "" "
টেবিল
{
  সীমান্ত-পতন: পতন;
}
ম
{
  রঙ: # fffff;
  পটভূমি রঙ: # 000000;
}
TD
{
  পটভূমি রঙ: # সিসিসিসিসি;
}
টেবিল, ম, টিডি
{
  ফন্ট-পরিবার: আরিয়াল, হেলভেটিকা, সানস-সেরিফ;
  সীমানা: 1px কঠিন কালো;
  পাঠ্য-সারিবদ্ধ: ডান;
}
"" "

ডুমুর, কুড়াল = plt.subplots (ম্লান, ম্লান, ডুমুরের আকার = (6,6))
fig.subplots_adjust (hspace = .4, wspace = .4)
টুলটিপ = [কিছুই নয়] * ম্লান

এন = 200
সূচক = এনপি.আরন্ডম.চয়েস (পরিসীমা (Y_sklearn.shape [0]), আকার = এন)

পরিসীমা এম (ম্লান) জন্য:
    পরিসীমা এন (m + 1) এর জন্য:
        কুড়াল [মি, এন] .গ্রিড (সত্য, আলফা = 0.3)
        স্ক্যাটার = কুড়াল [মি, এন]। স্ক্যাটার (ওয়াই_স্ক্লার্ন [সূচক, এম], ওয়াই_স্ক্লার্ন [সূচক, এন], আলফা = .05)

        লেবেল = []
        আমি সূচকে:
            লেবেল = এক্স.িক্স [[i],:]। টি.স্টাইপ (ইনট)
            লেবেল.কলামগুলি = ['সারি {0}'। ফর্ম্যাট (এক্স। ইনডেক্স [i])]
            labels.append (STR (label.to_html ()))

        ax [m, n] .set_xlabel ('উপাদান' + স্ট্র (মি))
        ax [m, n] .set_ylabel ('উপাদান' + স্ট্র (এন))
        #ax [মি, এন]। সেট_ শিরোনাম ('এইচটিএমএল টুলটিপস', আকার = 20)

        টুলটিপ [এম] = প্লাগইনস.পয়েন্টএইচটিএমএল টিউটিটিপ (স্ক্রেটার, লেবেল,
                                           ভফসেট = 20, হফসেট = 20, সিএসএস = সিএসএস)
        প্লাগইন.কনেক্ট (চিত্র, সরঞ্জামদণ্ড [মি])

প্লাগইনস কানেক্ট (ডুমুর, প্লাগইনস.লিংকড ব্রাশ (স্ক্র্যাটার))
পরীক্ষা = mpld3.fig_to_html (ডুমুর = ডুমুর)

পাঠ্য_ ফাইল হিসাবে খোলা ("আউটপুট। html", "ডাব্লু") সহ:
    text_file.write (টেস্ট)

এটি আমার ব্লগে কর্মে দেখুন

আপডেট [জুলাই 9, 2016]: আমি সবেমাত্র জানতে পেরেছিলাম যে প্লট.লির একটি অফলাইন মোড রয়েছে এবং এটি এখন উন্মুক্ত উত্স। এটিতে প্রচুর ঘণ্টা এবং হুইসেলগুলি প্রিপেইজড থাকে তবে এমপিএলডি 3 এখনও কিছু ক্ষেত্রে উপযুক্ত হতে পারে।


3

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

https://github.com/Lilykos/clusterix


শান্ত! আমি একটি চেহারা আছে।
স্কটলিটল

0

খুব সুন্দর পছন্দ, স্পষ্টতই ...

আমার ক্ষেত্রে, আমি দক্ষতার উপর ভিত্তি করে অনুরূপ উপাধি চক্রান্ত করার চেষ্টা করছিলাম, যেখানে দক্ষতাগুলি ছিল একটি শব্দ 2vec এম্বেডিং 300 মাত্রা; এটি একটি 3 টি মাত্রার ভেক্টর স্পেসে নিয়ে এসেছিল এবং স্ক্যাটার 3 ডি প্লটলি ব্যবহার করে আমি তার জন্য 3 ডি স্ক্যাটারপ্ল্লট প্লট করতে সক্ষম হয়েছি।

এট ভায়োলা !! হোভার এবং প্রসারিত কার্যকারিতা সহ অসাধারণ 3 মাত্রার গ্রাফ পেয়েছেন। এবং সর্বোত্তম অংশটি হ'ল এটি একটি এইচটিএমএল ফাইল হিসাবে রফতানি করা যায়, এটিকে একটি প্লাগ তৈরি করে এবং অন্য যে কোনও পিসির জন্য উপযুক্ত খেলতে পারে, কেবল একটি ব্রাউজারে টেনে এনে ছেড়ে দিন (নীচের কোডে অন্তর্ভুক্ত)।

আর কিছু সহজ হতে পারে

from plotly.offline import plot
from plotly.graph_objs import *
import numpy as np

# x = np.random.randn(2000)
# y = np.random.randn(2000)

# Instead of simply calling plot(...), store your plot as a variable and pass it to displayHTML().
# Make sure to specify output_type='div' as a keyword argument.
# (Note that if you call displayHTML() multiple times in the same cell, only the last will take effect.)

p = plot(
  [
    Scatter3d(x=skills_df[0], y=skills_df[1], z=skills_df[2], text= skills_df['designation'], mode='markers', marker=Marker(color=skills_df['cluster_number'], size=3, opacity=0.5, colorscale='Viridis'))
  ],
  output_type='div'
#   filename='/dbfs/FileStore/tables/lnkdn_jobroles_viridis.html' turn it on to save the file
)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.