সমুদ্র সৈকত প্লট প্রদর্শিত হচ্ছে না


204

আমি নিশ্চিত যে আমি খুব সাধারণ কিছু ভুলে যাচ্ছি তবে আমি সিবারনের সাথে কাজ করার জন্য নির্দিষ্ট প্লট পেতে পারি না।

যদি আমি করি:

import seaborn as sns

তারপরে আমি ম্যাটপ্ল্লোলিবের সাথে যথারীতি যে প্লট তৈরি করি তা সিবর্ন স্টাইলিং পান (পটভূমিতে ধূসর গ্রিড সহ)।

তবে, আমি উদাহরণগুলির মধ্যে একটি করার চেষ্টা করি, যেমন:

In [1]: import seaborn as sns

In [2]: sns.set()

In [3]: df = sns.load_dataset('iris')

In [4]: sns.pairplot(df, hue='species', size=2.5)
Out[4]: <seaborn.axisgrid.PairGrid at 0x3e59150>

পেয়ারপ্লট ফাংশনটি একটি পেয়ারগ্রিড অবজেক্ট প্রদান করে তবে প্লটটি প্রদর্শিত হবে না।

আমি কিছুটা বিভ্রান্ত কারণ ম্যাটপ্লটলিব মনে হচ্ছে সঠিকভাবে কাজ করছে, এবং সিবর্ন শৈলীগুলি অন্যান্য ম্যাটপ্ল্লোলিব প্লটগুলিতে প্রয়োগ করা হয়েছে, তবে সিবর্ন ফাংশনগুলি কিছুই করছে বলে মনে হয় না। সমস্যা কি হতে পারে কারও কি ধারণা আছে?


12
কেবলমাত্র একটি দ্রুত অনুমান ... আপনি আইপিথন ব্যবহার করছেন যদি আপনাকে %matplotlib inlineইনলাইন ব্যাকএন্ড নির্দিষ্ট করতে কল করতে হবে। অন্যথায় আপনি sns.plt.show()প্লটটি আলাদা উইন্ডোতে রেন্ডার করতে কল করতে পারেন could
Jakob

উত্তর:


359

সমুদ্র সৈকত ব্যবহার করে নির্মিত প্লটগুলি সাধারণ ম্যাটপ্ল্লোলিব প্লটের মতো প্রদর্শিত হওয়া দরকার। এটি ব্যবহার করে করা যেতে পারে

plt.show()

matplotlib থেকে ফাংশন।

মূলত আমি ইতিমধ্যে আমদানি করা ম্যাটপ্লাটলিব অবজেক্টটি সামুদ্রিক ( sns.plt.show()) থেকে ব্যবহার করার সমাধান পোস্ট করেছি তবে এটি একটি খারাপ অভ্যাস হিসাবে বিবেচিত হয়। অতএব, সরাসরি matplotlib.pyplot মডিউলটি আমদানি করুন এবং এর সাথে আপনার প্লটগুলি দেখান

import matplotlib.pyplot as plt
plt.show()

আইপিথন নোটবুকটি ব্যবহার করা হলে প্রতিটি প্লটের পরে কলিং শোয়ের প্রয়োজনীয়তা সরিয়ে ফেলার জন্য ইনলাইন ব্যাকএন্ডে অনুরোধ করা যেতে পারে। সংশ্লিষ্ট যাদুটি হ'ল

%matplotlib inline

4
আমি এখনও ইন্টারেক্টিভভাবে দেখানো কোনও এসএনএস প্লট পাই না। sns.plt.show () কাজ করে না। তবে আমি যখন এটিকে ইনলাইনে পরিবর্তন করি তখন আমি প্লটটি পাই (তবে ইন্টারেক্টিভভাবে না)। কোন ধারণা কেন?
ব্যবহারকারী 3317704

আপনি ভালো কিছু ব্যবহার করে একটি ব্যাকএন্ড নির্দিষ্ট করার চেষ্টা করে দেখতে পারেন %matplotlib qt, %matplotlib gtk, %matplotlib tkইত্যাদি দেখতে %matplotlib?আরও তথ্যের জন্য
জ্যাকব

17
এটি সত্যিই বিরক্তিকর যে সমুদ্রযুক্ত পৃষ্ঠার উদাহরণগুলিতে sns.plt.show () কোনও আদেশ নেই। তারা এই প্রাথমিক কিছুকে কীভাবে ভুলে যেতে পারে?
মাইকেল হ্যাচট

@ মিশেলহ্যাচট এই সমস্যাটিতে plt.show () এর অভাব কোনওভাবেই সামলানো হয়েছিল , আপনি সেখানে আপনার অভিযোগগুলি সমাধান করতে পারেন। হতে পারে তারা এটিকে ডক্সে যুক্ত করবে।
জাকোব

@ যাকোব জুপিটারের মধ্যে (অ্যানাকোন্ডার মাধ্যমে) এই %matplotlib inlineযাদুটিকে কনফিগারেশন ফাইলের কোথাও যুক্ত করার জন্য একটি উপায় আছে যাতে এটি সর্বদা প্রয়োগ করা হয়? নাকি আমার সর্বদা এটি প্রতিটি নতুন ওয়ার্কবুকে যুক্ত করা দরকার?
কেন

41

আমি বেশ নিয়মিত এই প্রশ্নে আসি এবং আমি যা অনুসন্ধান করি তা পেতে সর্বদা আমাকে কিছুটা সময় লাগে:

import seaborn as sns
import matplotlib.pyplot as plt

plt.show()  # <--- This is what you are looking for

দয়া করে নোট করুন: পাইথন 2 এ, আপনি পাইথন 3 তেও ব্যবহার করতে পারেন sns.plt.show()

সম্পূর্ণ উদাহরণ

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""Visualize C_0.99 for all languages except the 10 with most characters."""

import seaborn as sns
import matplotlib.pyplot as plt

l = [41, 44, 46, 46, 47, 47, 48, 48, 49, 51, 52, 53, 53, 53, 53, 55, 55, 55,
     55, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58,
     58, 59, 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 60, 60, 60, 60, 61,
     61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, 62, 62, 62,
     62, 63, 63, 63, 63, 63, 63, 63, 63, 63, 64, 64, 64, 64, 64, 64, 64, 65,
     65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 66, 66, 66,
     67, 67, 67, 67, 67, 67, 67, 67, 68, 68, 68, 68, 68, 69, 69, 69, 70, 70,
     70, 70, 71, 71, 71, 71, 71, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 73,
     74, 74, 74, 74, 74, 75, 75, 75, 76, 77, 77, 78, 78, 79, 79, 79, 79, 80,
     80, 80, 80, 81, 81, 81, 81, 83, 84, 84, 85, 86, 86, 86, 86, 87, 87, 87,
     87, 87, 88, 90, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 91, 91, 91, 92,
     92, 93, 93, 93, 94, 95, 95, 96, 98, 98, 99, 100, 102, 104, 105, 107, 108,
     109, 110, 110, 113, 113, 115, 116, 118, 119, 121]

sns.distplot(l, kde=True, rug=False)

plt.show()

দেয়

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


1
AttributeError: module 'seaborn' has no attribute 'plt'
weberc2

@ ওয়েবারসি 2 ফিক্সড। সমস্যাটি কেবল পাইথন 3 এ ছিল, যা নেইsns.plt
মার্টিন থোমা

19

বিভ্রান্তি এড়াতে (যেমন মন্তব্যগুলিতে কিছু আছে বলে মনে হচ্ছে)। ধরে নিচ্ছি আপনি জুপিটারে আছেন:

%matplotlib inline> নোটবুকের ভিতরে প্লটগুলি প্রদর্শন করে

sns.plt.show()> নোটবুকের বাইরে প্লটগুলি প্রদর্শন করে

%matplotlib inlineহবে ওভাররাইড sns.plt.show() অর্থে যে প্লট দেখানো হবে ইন নোটবুক এমনকি যখন sns.plt.show()বলা হয়।

এবং হ্যাঁ, আপনার কনফিগারেশনে লাইনটি অন্তর্ভুক্ত করা সহজ:

আইপিথন নোটবুকটিতে স্বয়ংক্রিয়ভাবে% ম্যাটপ্লটলিব ইনলাইন চালান

তবে এটি আসল কোডে আমদানির সাথে একত্রে রাখা আরও ভাল কনভেনশন বলে মনে হচ্ছে।


স্পার্ক নোটবুকের জন্য?
টেকনিকাজি

8

এটি আমার পক্ষে কাজ করেছে

import matplotlib.pyplot as plt
import seaborn as sns
.
.
.
plt.show(sns)

4

আমার পরামর্শটি কেবল একটি দেওয়া

plt.figure()এবং কিছু এসএনএস প্লট দিন। উদাহরণ স্বরূপ

sns.distplot(data)

যদিও এটি দেখতে এটি কোনও প্লট দেখায় না, আপনি যখন চিত্রটি সর্বাধিক করবেন তখন আপনি প্লটটি দেখতে সক্ষম হবেন।


আমি plt.figure()আমার লাইনপ্লট তৈরি করার আগে একটি চিত্র তৈরি করতে ভুলে গিয়েছিলাম এবং কেন প্লটটি প্রদর্শিত হয়নি তা বুঝতে পারি নি। দুর্দান্ত, ধন্যবাদ!
Sander Vanden Hautte

2

আপনি প্লটে বিভক্ত তাহলে IPython কনসোল (আপনি যেখানে ব্যবহার করতে পারবেন না %matplotlib inlineJupyter নোটবুক পরিবর্তে), এবং চালানোর জন্য চাই না plt.show()বারবার তোমাদের সঙ্গে IPython কনসোল শুরু করতে পারেন ipython --pylab:

$ ipython --pylab     
Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.0.1 -- An enhanced Interactive Python. Type '?' for help.
Using matplotlib backend: Qt5Agg

In [1]: import seaborn as sns

In [2]: tips = sns.load_dataset("tips")

In [3]: sns.relplot(x="total_bill", y="tip", data=tips) # you can see the plot now

1

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

গিটিহাবের এই ইস্যুতে , ২০১ IP সালে আইপথনের সদস্য দ্বারা এটি স্পষ্ট করে দেওয়া হয়েছিল যে চার্টের প্রদর্শনটি কেবল "যখন এটি একটি বৃহত্তর কার্নেল যখন কাজ করবে" তখনই কাজ করবে। সুতরাং, %matplotlib inlineকাজ করবে না।

আমার ঠিক একই সমস্যা ছিল এবং আপনাকে পরামর্শ দেওয়ার জন্য জুপিটার নোটবুকটি ব্যবহার করার পরামর্শ দিচ্ছি use

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