আমি আইপিথন নোটবুকে ইন্টারেক্টিভ ম্যাটপ্লটলিব উইন্ডোটি কীভাবে খুলতে পারি?


125

আমি এর সাথে আইপিথন ব্যবহার করছি --pylab=inlineএবং মাঝে মাঝে প্লট দেখার জন্য ইন্টারঅ্যাকটিভ, চিড়িয়াখানাযোগ্য ম্যাটপ্ল্লোব জিইআইতে স্যুইচ করতে চাই (আপনি যখন টার্মিনালের পাইথন কনসোলে কিছু প্লট করবেন তখন পপ আপ হবে)। আমি এটা কিভাবে করতে পারি? সাধারণত আমার নোটবুক না রেখে বা পুনরায় চালু না করে।

আইপিআই নোটবুকের ইনলাইন প্লটগুলির সমস্যা হ'ল এগুলি একটি সীমিত রেজোলিউশনের এবং আমি কিছু ছোট অংশ দেখতে তাদের জুম করতে পারি না। টার্মিনাল থেকে শুরু হওয়া ম্যাপ্লটলিব জিইউআই সহ আমি গ্রাফটির একটি আয়তক্ষেত্র নির্বাচন করতে পারি যা আমি জুম করতে চাই এবং অক্ষগুলি সেই অনুযায়ী সামঞ্জস্য করতে পারি। আমি পরীক্ষা করে দেখার চেষ্টা করেছি

from matplotlib import interactive
interactive(True)

এবং

interactive(False)

কিন্তু এটি কিছুই করেনি। আমি অনলাইনে কোনও ইঙ্গিতও পাইনি।


4
আপনার মূল সমস্যার আরও একটি সম্ভাব্য সমাধান হ'ল আপনার ইনলাইন প্লটগুলিতে জুম করা সক্ষম করা, যা আমি এখানে বর্ণিত হিসাবে এখনই সম্ভব: stackoverflow.com/a/22949003/145823
yonilevy

3
%matplotlib notebook কাজ করে
মুন

উত্তর:


140

ডকুমেন্টেশন অনুসারে , আপনার এইরকম পিছনে পিছনে স্যুইচ করতে সক্ষম হওয়া উচিত:

In [2]: %matplotlib inline 
In [3]: plot(...)

In [4]: %matplotlib qt  # wx, gtk, osx, tk, empty uses default
In [5]: plot(...) 

এবং এটি একটি নিয়মিত প্লট উইন্ডো পপ আপ করবে (নোটবুকের পুনঃসূচনা প্রয়োজন হতে পারে)।

আশা করি এটা কাজে লাগবে.


2
এটা %pylab qt। ওএস এক্সে কাজ করছেন না Maybe উবুন্টুতে এটি সাহায্য করবে।
মেটেকারমিট

11
দুর্ভাগ্যক্রমে, আপনি পরিবর্তন করতে পারবেন না fr আপনি যদি পাইলব = ইনলাইন বা পাইলাব = কিউটি দিয়ে শুরু করার পরে স্যুইচ করার চেষ্টা করেন তবে আপনি পাবেন: ম্যাটপ্ল্লোব.উজে () তে এই কলটির কোনও প্রভাব নেই কারণ ব্যাকএন্ড ইতিমধ্যে বেছে নেওয়া হয়েছে; matplotlib.use () প্রথমবারের জন্য পাইলব, ম্যাটপ্ল্লোব.পায়প্লট, বা ম্যাটপ্ল্লটিব.ব্যাকেন্ডগুলি আমদানি করার আগে অবশ্যই কল করা উচিত ।
চার্ল বোথা

3
আমি এটিকে নিম্নোক্ত করেছিলাম কারণ এটি আমার পক্ষে কাজ করে নি, এবং এখনও তা করে না, তবে দৃশ্যত এটি 1927 এর ইস্যু এবং এটি 2179 এর সাথে সংশোধন করা উচিত ছিল । @ ইয়ারক্স, আপনি এই তথ্যটি অন্তর্ভুক্ত করার জন্য যদি আপনার উত্তরটি সম্পাদনা করেন তবে আমি আমার ডাউনওয়োটটি পূর্বাবস্থায় ফিরিয়ে আনব।
askewchan

2
আইপিএস v1.1.0 এবং এমপিএল 1.3.0 ব্যবহার করে এখানে ওএসএক্সেও সূক্ষ্মভাবে কাজ করে
-মাইকেল আয়ে

1
উইন 7 এক্স 64 এ পাইথন 2.7 এর বর্তমান প্রকাশ ব্যবহার করে এখনই (2014-08) আমার জন্য কাজ করে।
nerdfever.com

65

যদি আপনি যা করতে চান তা হ'ল ইনলাইন প্লটগুলি থেকে ইন্টারেক্টিভ এবং পিছনে স্যুইচ করা (যাতে আপনি প্যান / জুম করতে পারেন),% ম্যাটপ্ল্লিটিব যাদু ব্যবহার করা ভাল।

#interactive plotting in separate window
%matplotlib qt 

এবং এইচটিএমএল ফিরে

#normal charts inside notebooks
%matplotlib inline 

% পাইলাব যাদু অন্যান্য জিনিসগুলির একগুচ্ছ আমদানি করে এবং এমনকি দ্বন্দ্বের কারণ হতে পারে। এটি "পাইলাব আমদানি থেকে" করে।

আপনি নতুন নোটবুক ব্যাকএন্ডও ব্যবহার করতে পারেন (ম্যাটপ্ললিট 1.4 এ যুক্ত):

#interactive charts inside notebooks, matplotlib 1.4+
%matplotlib notebook 

আপনি আপনার চার্ট আরও ইন্ট্যার্যাক্টিভিটির আছে চান, আপনি তাকান করতে পারেন mpld3 এবং বোকে । এমপিএলডি 3 দুর্দান্ত, যদি আপনার কাছে টন ডেটা পয়েন্ট না থাকে (যেমন <5 কে +) এবং আপনি% ম্যাটপ্ল্লোব নোটবুকের তুলনায় স্বাভাবিক ম্যাটপ্ল্লোলিব সিনট্যাক্স, তবে আরও ইন্টারঅ্যাক্টিভিটি ব্যবহার করতে চান। বোকেহ প্রচুর ডেটা পরিচালনা করতে পারে তবে এটির বাক্য গঠনটি আপনাকে আলাদা লাইব্রেরি হওয়ার কারণে শিখতে হবে।

এছাড়াও আপনি পাইভোটেবলগুলি (পিপ ইনস্টল পিভোটটেবালস) পরীক্ষা করে দেখতে পারেন

from pivottablejs import pivot_ui
pivot_ui(df)

তবে শীতল ইন্টারেক্টিভ ডেটা এক্সপ্লোরেশন হ'ল এটি পুনরুত্পাদনযোগ্যতার সাথে পুরোপুরি জগাখিচুড়ি করতে পারে। এটি আমার কাছে ঘটেছে, তাই আমি কেবল এটি প্রাথমিক পর্যায়ে ব্যবহার করার চেষ্টা করি এবং একবার ডেটা অনুভব করার পরে খাঁটি ইনলাইন ম্যাটপ্ল্লোব / সামুদ্রিক দিকে স্যুইচ করি।


1
Warning: Cannot change to a different GUI toolkit: notebook. Using qt instead.জন্য %matplotlib notebook
এমএল স্টুডেন্ট 33

1
ImportError: Failed to import any qt bindingকিউটি ম্যাজিক কমান্ডের জন্য
এমএল স্টুডেন্ট 33

31

ম্যাটপ্ল্লটিব 1.4.0 দিয়ে শুরু করে নোটবুকটিতে এখন ব্যবহারের জন্য একটি ইন্টারেক্টিভ ব্যাকএন্ড রয়েছে is

%matplotlib notebook

আইপিথনের কয়েকটি সংস্করণ রয়েছে যার নাম নেই যে উপনামটি নিবন্ধিত আছে, পতনের পিছনে রয়েছে:

%matplotlib nbagg

এটি যদি কাজ না করে তবে আপনি আইপিথন আপডেট করুন।

এই সাথে খেলতে, যাও tmpnb.org

এবং পেস্ট করুন

%matplotlib notebook

import pandas as pd
import numpy as np
import matplotlib

from matplotlib import pyplot as plt
import seaborn as sns

ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()

df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index,
                  columns=['A', 'B', 'C', 'D'])
df = df.cumsum()
df.plot(); plt.legend(loc='best')    

একটি কোড কক্ষে (বা কেবল বিদ্যমান পাইথন ডেমো নোটবুকটি সংশোধন করুন)


6

আপনার সমস্যার আরও ভাল সমাধান হতে পারে চার্টস লাইব্রেরি। এটি আপনাকে সুন্দর এবং ইন্টারেক্টিভ প্লট তৈরি করতে দুর্দান্ত হাইচার্টস জাভাস্ক্রিপ্ট লাইব্রেরি ব্যবহার করতে সক্ষম করে । হাইচার্টগুলি এইচটিএমএল svgট্যাগ ব্যবহার করে তাই আপনার সমস্ত চার্টগুলি আসলে ভেক্টর চিত্র।

কিছু বৈশিষ্ট্য:

  • ভেক্টর প্লট যা আপনি .png, .jpg এবং .svg ফর্ম্যাটে ডাউনলোড করতে পারেন যাতে আপনি কখনই সমস্যার সমাধান করতে পারবেন না
  • ইন্টারেক্টিভ চার্ট (জুম, স্লাইড, পয়েন্টগুলির ওপরে, ...)
  • আইপিথন নোটবুকে ব্যবহারযোগ্য
  • অ্যাসিক্রোনাস প্লট করার ক্ষমতা ব্যবহার করে একই সাথে কয়েকশ ডেটা স্ট্রাকচার আবিষ্কার করুন।

দাবি অস্বীকার: আমি লাইব্রেরির বিকাশকারী


বেশ সুন্দর লাইব্রেরি! আমি এটি চেষ্টা করে দেখতে অবশ্যই নিশ্চিত হব :)
metakermit

ধন্যবাদ! আপনি
গিথুব

1
যদিও এই উত্তরটি অবশ্যই প্রাসঙ্গিক, আমি অগত্যা এটিকে "আরও ভাল সমাধান" বলব না। অতীতে সম্ভবত এটাই একটি ডাউনটোট সৃষ্টি করেছিল, সম্ভবত।
ভোল্ডিমায়ার

1
ডাউনভোটেড, যেহেতু এই পোস্টটি আমাকে কীভাবে বাস্তবে একটি ইন্টারেক্টিভ প্লট উইন্ডো খোলার জন্য চার্টস লাইব্রেরিটি ব্যবহার করতে পারি তা আমাকে জানায় না।
রবার্ট হনিগ

4

আমি 5/28/20117 এ www.continuum.io/downloads এ অ্যানাকোন্ডা থেকে "জুপিটার কিউটিসনসোল" এ আইপথন ব্যবহার করছি।

আইপিথন যাদু ব্যবহার করে একটি পৃথক উইন্ডো এবং একটি ইনলাইন প্লট মোডের মধ্যে পিছনে পিছনে পিছনে ফিরতে এখানে একটি উদাহরণ।

>>> import matplotlib.pyplot as plt

# data to plot
>>> x1 = [x for x in range(20)]

# Show in separate window
>>> %matplotlib
>>> plt.plot(x1)
>>> plt.close() 

# Show in console window
>>> %matplotlib inline
>>> plt.plot(x1)
>>> plt.close() 

# Show in separate window
>>> %matplotlib
>>> plt.plot(x1)
>>> plt.close() 

# Show in console window
>>> %matplotlib inline
>>> plt.plot(x1)
>>> plt.close() 

# Note: the %matplotlib magic above causes:
#      plt.plot(...) 
# to implicitly include a:
#      plt.show()
# after the command.
#
# (Not sure how to turn off this behavior
# so that it matches behavior without using %matplotlib magic...)
# but its ok for interactive work...

1
আমি যখন ব্যবহার করার চেষ্টা করি তখন আমি %matplotlibএকটি ত্রুটি পাই যা ব্যবহারকারীর সাথে সমাপ্ত হয়ImportError: No module named 'PyQt4'
ব্যবহারকারীর 73৩16১22২২

আমি ইউজার 3731622 এর মতো একই সমস্যাটি পেয়েছি। কি করা যেতে পারে? এটি এই পৃষ্ঠার বেশিরভাগ উত্তরের জন্য
বার্নানডো_ভায়ালি

@mkheifetz @ user3731622 আপনার প্যাকেজটি ইনস্টল করতে হতে পারে: sudo apt-get install python-pyqt5বাsudo apt-get install python-pyqt5
ttb


0

তুমি ব্যবহার করতে পার

%matplotlib qt

আপনি যদি ত্রুটিটি পেয়ে থাকেন ImportError: Failed to import any qt bindingতবে পাইকিউটি 5 এটি হিসাবে ইনস্টল করুন: pip install PyQt5এবং এটি আমার পক্ষে কাজ করে।

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