পয়েন্টগুলি ব্যবহার করে একটি পান্ডাস ডেটা ফ্রেমের দুটি কলাম কীভাবে প্লট করবেন?


97

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

df.plot(x='col_name_1', y='col_name_2')

দুর্ভাগ্যক্রমে, দেখে মনে হচ্ছে প্লটের শৈলীর মধ্যে ( প্যারামিটারের পরে এখানে তালিকাভুক্ত kind) পয়েন্ট নেই। আমি লাইন বা বার বা এমনকি ঘনত্ব ব্যবহার করতে পারি তবে পয়েন্ট নয়। চারপাশে এমন কোনও কাজ রয়েছে যা এই সমস্যাটি সমাধান করতে সহায়তা করতে পারে।

উত্তর:


118

কল করার সময় আপনি styleপ্লট করা লাইনের একটি নির্দিষ্ট করতে পারেন df.plot:

df.plot(x='col_name_1', y='col_name_2', style='o')

styleযুক্তি আরো একটি হতে পারে dictবা list, যেমন:

import numpy as np
import pandas as pd

d = {'one' : np.random.rand(10),
     'two' : np.random.rand(10)}

df = pd.DataFrame(d)

df.plot(style=['o','rx'])

সমস্ত স্বীকৃত শৈলী বিন্যাসের ডকুমেন্টেশন তালিকাভুক্ত করা হয় matplotlib.pyplot.plot

আউটপুট


79

এর জন্য (এবং সর্বাধিক ষড়যন্ত্রের) জন্য আমি ম্যাটপ্ল্লোলিবের কাছে পান্ডার মোড়কের উপর নির্ভর করব না। পরিবর্তে, সরাসরি ম্যাটপ্লটলিব সরাসরি ব্যবহার করুন:

import matplotlib.pyplot as plt
plt.scatter(df['col_name_1'], df['col_name_2'])
plt.show() # Depending on whether you use IPython or interactive mode, etc.

এবং মনে রাখবেন যে df.col_name_1.valuesউদাহরণস্বরূপ আপনি কলামের মানগুলির একটি NumPy অ্যারে অ্যাক্সেস করতে পারেন ।

মিলিসেকেন্ড যথার্থতার সাথে টাইমস্ট্যাম্প মানগুলির একটি কলামের ক্ষেত্রে পান্ডাস ডিফল্ট প্লট করাতে এটি ব্যবহার করে আমি সমস্যায় পড়েছি। বস্তুগুলিকে datetime64টাইপে রূপান্তর করার চেষ্টা করতে গিয়ে আমি একটি বাজে সমস্যাও আবিষ্কার করেছি: < টাইমস্ট্যাম্প কলামের মানগুলিতে অ্যাট্রিপ রয়েছে কিনা জিজ্ঞাসা করার সময় পান্ডস ভুল ফলাফল দেয়


5

Pandasmatplotlibবেসিক প্লটগুলির জন্য একটি লাইব্রেরি হিসাবে ব্যবহার করে । আপনার ক্ষেত্রে সবচেয়ে সহজ উপায় নিম্নলিখিতটি ব্যবহার করবে:

import pandas as pd
import numpy as np

#creating sample data 
sample_data={'col_name_1':np.random.rand(20),
      'col_name_2': np.random.rand(20)}
df= pd.DataFrame(sample_data)
df.plot(x='col_name_1', y='col_name_2', style='o')

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

তবে, আমি seabornবিকল্প সমাধান হিসাবে ব্যবহার করার পরামর্শ দিচ্ছি যদি আপনি যদি আরও কাস্টমাইজড প্লট চান তবে এর প্রাথমিক স্তরের দিকে না গিয়ে matplotlib.এই ক্ষেত্রে আপনি সমাধানটি অনুসরণ করবেন:

import pandas as pd
import seaborn as sns
import numpy as np

#creating sample data 
sample_data={'col_name_1':np.random.rand(20),
      'col_name_2': np.random.rand(20)}
df= pd.DataFrame(sample_data)
sns.scatterplot(x="col_name_1", y="col_name_2", data=df)

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


0

এখন সর্বশেষ প্যান্ডাসে আপনি সরাসরি df.plot.scatter ফাংশন ব্যবহার করতে পারেন

df = pd.DataFrame([[5.1, 3.5, 0], [4.9, 3.0, 0], [7.0, 3.2, 1],
                   [6.4, 3.2, 1], [5.9, 3.0, 2]],
                  columns=['length', 'width', 'species'])
ax1 = df.plot.scatter(x='length',
                      y='width',
                      c='DarkBlue')

https://pandas.pydata.org/pandas-docs/version/0.23/generated/pandas.DataFrame.plot.scatter.html

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