পান্ডা এবং ম্যাটপ্ল্লিটিব সহ শ্রেণীবদ্ধ ডেটা প্লট করা


94

শ্রেণিবদ্ধ ডেটা সহ আমার একটি ডেটা ফ্রেম রয়েছে:

     colour  direction
1    red     up
2    blue    up
3    green   down
4    red     left
5    red     right
6    yellow  down
7    blue    down

আমি বিভাগগুলির উপর ভিত্তি করে পাই চার্ট এবং হিস্টোগ্রামের মতো কিছু গ্রাফ তৈরি করতে চাই। ডামি সংখ্যার ভেরিয়েবল তৈরি না করেই কি সম্ভব? কিছুটা এইরকম

df.plot(kind='hist')

উত্তর:


181

আপনি কেবল value_countsসিরিজটিতে ব্যবহার করতে পারেন :

df['colour'].value_counts().plot(kind='bar')

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


4
df["colour"].value_counts().plot(kind='bar')সাধারণ বিকল্প হিসাবে পরামর্শ দেওয়া হচ্ছে
ওপেনওনক

4
এক্স লেবেলের ক্রম নির্দিষ্ট করা কি সম্ভব?
পি। ক্যামিলারি

4
হ্যাঁ, আপনি এক্স-লেবেলের ক্রমটি স্পষ্টভাবে নির্দিষ্ট করতে পারেন, যেমনdf['colour'].value_counts()[['green', 'yellow', 'blue', 'red']]
আলেকজান্ডার

আপনি কি দয়া করে আমাকে জানান যে আমি কীভাবে এই চক্রান্তের সাথে সামঞ্জস্য করতে পারি। আমি বোঝাতে চাইছি যদি আমি প্রতিটি শ্রেণীর জন্য রঙ পরিবর্তন করতে চাই বা আমি এটিতে একটি কিংবদন্তি যুক্ত করতে চাই।
ইবতিহাজ তাহির

24

আপনি mosaicস্ট্যাটাসমডেলগুলি থেকে দরকারী প্লট পেতে পারেন । যা বৈকল্পিকগুলির জন্য পরিসংখ্যানিক হাইলাইটিংও দিতে পারে।

from statsmodels.graphics.mosaicplot import mosaic
plt.rcParams['font.size'] = 16.0
mosaic(df, ['direction', 'colour']);

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

তবে 0 মাপের কক্ষ থেকে সাবধান থাকুন - তারা লেবেলগুলির সাথে সমস্যা সৃষ্টি করবে।

বিস্তারিত জানার জন্য এই উত্তরটি দেখুন


ধন্যবাদ আমি মান ভঙ্গা পেতে থাকি: এটিতে পূর্ণসংখ্যায় এনএ রূপান্তর করতে পারি না।
ইভান

4
এই কারণেই আমি এই উত্তরটি উল্লেখ করেছি । এটি এই সমস্যার সমাধান করতে সহায়তা করা উচিত।
প্রাইমার


11

আপনি countplotথেকে ব্যবহার করতে পারে seaborn। এই প্যাকেজটি pandasএকটি উচ্চ স্তরের প্লটিং ইন্টারফেস তৈরির জন্য তৈরি করে। এটি আপনাকে নিখরচায় ভাল স্টাইলিং এবং সঠিক অক্ষের লেবেল দেয়।

import pandas as pd
import seaborn as sns
sns.set()

df = pd.DataFrame({'colour': ['red', 'blue', 'green', 'red', 'red', 'yellow', 'blue'],
                   'direction': ['up', 'up', 'down', 'left', 'right', 'down', 'down']})
sns.countplot(df['colour'], color='gray')

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

এটি সামান্য কৌশল দ্বারা বারগুলিকে সঠিক রঙে রঙ করাও সমর্থন করে

sns.countplot(df['colour'],
              palette={color: color for color in df['colour'].unique()})

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


10

একই প্লটে বার চার্ট হিসাবে একাধিক শ্রেণিবদ্ধ বৈশিষ্ট্যগুলি প্লট করার জন্য, আমি পরামর্শ দেব:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(
    {
        "colour": ["red", "blue", "green", "red", "red", "yellow", "blue"],
        "direction": ["up", "up", "down", "left", "right", "down", "down"],
    }
)

categorical_features = ["colour", "direction"]
fig, ax = plt.subplots(1, len(categorical_features))
for i, categorical_feature in enumerate(df[categorical_features]):
    df[categorical_feature].value_counts().plot("bar", ax=ax[i]).set_title(categorical_feature)
fig.show()

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


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