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


92

আমি উইন্ডোজ in তে পাইথন (এক্স, ওয়াই) থেকে ২..2.২.৩ থেকে ২.7..6.০ এ আপগ্রেড করেছিলাম (এবং অবশেষে আমি function_name?অবজেক্ট ইন্সপেক্টরটিতে আবার ডক্ট্রিংটি টাইপ করতে এবং দেখতে পাচ্ছি তা দেখে খুশি হয়েছিল ) তবে এখন প্লটিংটি সেটির মতো কাজ করে না অভ্যস্ত।

পূর্বে (স্পাইডার ২.১.৯, আইপিথন ০.১০.২, ম্যাটপ্লটলিব ১.২.১), যখন আমি এই স্ক্রিপ্টটি প্লট করেছি, উদাহরণস্বরূপ, এটি একটি ইন্টারেক্টিভ উইন্ডোতে সাব-প্লটগুলি পাশাপাশি পাশাপাশি প্লট করবে:

এখানে চিত্র বর্ণনা লিখুন

এখন (স্পাইডার ২.২.৫, আইপিথন ২.২.০, ম্যাটপ্লটলিব ১.৩.১) আমি যখন জিনিসগুলি ষড়যন্ত্র করার চেষ্টা করি তখন এটি ক্ষুদ্র ইনলাইন পিএনজি হিসাবে সাবপ্লটগুলি করে, যা আইপিথনের পরিবর্তন :

ক্ষুদ্রতর ইনলাইন পিএনজি

সুতরাং আমি বিকল্পগুলিতে গিয়ে এটি পেয়েছি:

গ্রাফিক্স বিকল্প

যা বলে মনে হচ্ছে যে আমি পুরানো ইন্টারেক্টিভ প্লটগুলি ফিরে পেতে পারি, পাশাপাশি 4 টি সাবপ্লটগুলি পাশাপাশি-পাশাপাশি প্রদর্শিত হয়, কিন্তু যখন আমি "স্বয়ংক্রিয়" এ চলে যাই এবং কিছু প্লট করার চেষ্টা করি, এটি কিছুই করে না। কোনও প্লট নেই।

যদি আমি এই ড্রপ-ডাউনটি কিউটিতে স্যুইচ করি বা "সক্রিয়করণ সমর্থন" নির্বাচন না করে এটি কেবল প্রথম সাবপ্লট, বা এর কিছু অংশ প্লট করে এবং তারপরে থামবে:

এখানে চিত্র বর্ণনা লিখুন

আমি কীভাবে একক চিত্রের 4 পাশের পাশাপাশি সাবপ্লটগুলির পুরানো আচরণ পেতে পারি যার সাথে আমি ইন্টারেক্ট করতে পারি?


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

4
@ টিক্যাসওয়েল "তারা" কে এবং তারা পাইপলটের পরিবর্তে কী ব্যবহার করবেন?
এন্ডোলিথ

4
আপনি কি পাইথনক্সির বাইরে এই সমস্যাটি পুনরুত্পাদন করতে পারেন (কেবল স্ট্রেইট আইপিথন + কিউথকনসোল ব্যবহার করছেন)? কী ভুল হচ্ছে তা বাছাই করার জন্য এখানে পর্যাপ্ত তথ্য নেই।
টাকাসওয়েল

4
আমি অনুমান করব এটি স্পাইডারে একটি বাগ (স্পাইডার আইডিই, পাইথোন্সি হ'ল বিতরণ)।
থমাস কে

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

উত্তর:


136

ব্যাকএন্ডটি স্বয়ংক্রিয়ভাবে পরিবর্তন করুন:

সরঞ্জামসমূহ> পছন্দসমূহ> আইপিথন কনসোল> গ্রাফিক্স> গ্রাফিক্স ব্যাকএন্ড> ব্যাকএন্ড: স্বয়ংক্রিয়

তারপরে স্পাইডারটি ক্লোজ এবং ওপেন করুন।


27
বন্ধ এবং খোলার প্রকৃতপক্ষে প্রয়োজনীয়। এটি কেন ডিফল্ট মান নয় তা অবাক করেই ভাবছেন।
ম্যাথিয়াস 711

4
এছাড়াও, এখনও কেউ তাদের প্লট না দেখে (যেমন আমি ছিলাম না), প্লট উইন্ডোটি নিঃশব্দে আপনার কনসোল উইন্ডোতে_ প্রদর্শিত হবে (কমপক্ষে এটি উইন্ডোজ 10 এর স্পাইডারে রয়েছে) যাতে আপনার উইন্ডোটির আশেপাশে খোঁজ নিতে হয়।
জোশুয়া গ্লেজার

4
এটি খুঁজে পেতে python > preferences > IPython console > Graphics > Graphics backend > Backend: Automatic
সমস্যাগ্রস্থদের জন্য

6
স্পাইডার পুনরায় চালু করার পরিবর্তে আপনি কেবল কার্নেলটি পুনরায় চালু করতে পারেন (হয় কনসোলের সেটিংস চাকাটিতে ক্লিক করে এবং "পুনরায় আরম্ভ করুন" বা একটি কীবোর্ড শর্টকাটের মাধ্যমে (ম্যাক সিএমডি + তে))
মাইকেল

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

51

আপনি স্পাইডারের আইপিথন কনসোলে বিল্ট-ইন ম্যাজিক কমান্ডগুলি টাইপ করে এটি দ্রুত নিয়ন্ত্রণ করতে পারেন , যা আমি পছন্দসমূহ মেনু থেকে এগুলি বেছে নেওয়ার চেয়ে দ্রুত পাই। পরিবর্তনগুলি স্পাইডার বা কার্নেলটি পুনরায় আরম্ভ করার প্রয়োজন ছাড়াই তাত্ক্ষণিকভাবে কার্যকর হয়।

"স্বয়ংক্রিয়" (যেমন ইন্টারেক্টিভ) প্লটগুলিতে স্যুইচ করতে, টাইপ করুন:

%matplotlib auto

তারপরে আপনি যদি "ইনলাইন" এ ফিরে যেতে চান তবে এটি টাইপ করুন:

%matplotlib inline

(দ্রষ্টব্য: এই আদেশগুলি নন-আইপিথন কনসোলগুলিতে কাজ করে না)

এই বিষয়টিতে আরও পটভূমি দেখুন: "% ম্যাটপ্লটলিব ইনলাইন" এর উদ্দেশ্য


পাইথন ৩.6-এ, আমি পেয়েছিmatplotlib inline File "<stdin>", line 1 %matplotlib inline ^ SyntaxError: invalid syntax
কার্লো

4
@ কার্লো যে ত্রুটিটি একটি প্রচলিত "পাইথন" দোভাষী দ্বারা প্রত্যাশিত। এই বাক্য গঠনটি কেবল আইপথন বা স্পাইডার দিয়ে বৈধ।
মাইক টি

ঠিক আছে, আমি এটি স্পাইডারে ব্যবহার করেছি তবে পাইথন কনসোলটিতে in আসলে এটি আইপিথন কনসোলটিতে কাজ করে।
কার্লো

4
কোনও স্ক্রিপ্ট ব্যবহার করে সেট করার কোনও উপায় আছে কি? কোন স্ক্রিপ্টের মধ্যে গ্রাফের আউটপুট কোথায় আছে তা বেছে নেওয়া উচিত? ধন্যবাদ.
রয়াই

4
এটি স্পাইডারে কাজ করবে না বলে মনে হচ্ছে, যদিও এটি একটি সাধারণ আইপিথন উইন্ডোতে এটি করার উপায়। মেনু পছন্দগুলি ব্যবহার করে আমার পক্ষে কাজ করে; নিশ্চিত না কেন এটি হয় না।
কচ্ছপ 21

10

প্রয়োগের পরে: সরঞ্জামসমূহ> পছন্দসমূহ> গ্রাফিক্স> ব্যাকএন্ড> স্বয়ংক্রিয়ভাবে কার্নেলটি পুনরায় আরম্ভ করুন এখানে চিত্র বর্ণনা লিখুন

এবং আপনি অবশ্যই ইন্টারেক্টিভ প্লট পাবেন। শুভ কোডিং!


5

মন্তব্যে যেমন বলা হয়েছে, সমস্যাটি আপনার স্ক্রিপ্টে রয়েছে। আসলে, এখানে 2 টি সমস্যা রয়েছে:

  • একটি ম্যাটপ্ল্লোব ত্রুটি রয়েছে, আমি অনুমান করি যে আপনি Noneকোথাও যুক্তিটি পাস করছেন । ডিফল্টডিক্টের কারণে হতে পারে?
  • আপনি show()প্রতিটি subplot পরে কল । show()আপনার স্ক্রিপ্টের শেষে একবার কল করা উচিত। বিকল্পটি হল ইন্টারেক্টিভ মোড ব্যবহার করা, ionম্যাটপ্ল্লিটিবের ডকুমেন্টেশনগুলি সন্ধান করুন।

2

এটি ঠিক করা খুব সহজ এবং কোনও কোডিং নেয় না:

1. কনসোলের উপরে প্লট ট্যাবে ক্লিক করুন। ২.পর প্লটের পর্দার উপরের ডানদিকে কোণায় অপশন বাটনে ক্লিক করুন। 3. খুব শীঘ্রই "নিঃশব্দে ইনলাইন প্লট করা" বোতামটি চেক করুন

এখন আপনার স্ক্রিপ্টটি পুনরায় রান করুন এবং আপনার গ্রাফগুলি কনসোলে প্রদর্শিত হবে।

চিয়ার্স

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