ত্রুটি বারের চেয়ে ছায়াযুক্ত অঞ্চল হিসাবে ইয়ার / জেরার প্লট করুন


142

ম্যাটপ্লটলিবতে, আমি ত্রুটি বারগুলির চেয়ে ছায়াযুক্ত অঞ্চল হিসাবে ত্রুটিটিকে কীভাবে প্লট করব?

উদাহরণ স্বরূপ:

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

বরং

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


1
শীর্ষ প্লটটি কীভাবে উত্পন্ন হয়েছিল?
মাইকেলএসবি 21

এটা কি তোমার প্রশ্নের উত্তর? ম্যাটপ্ল্লোলিবের লাইনে প্লটে
ছায়াযুক্ত

উত্তর:


151

আপনার উদাহরণ গ্রাফের পয়েন্টগুলির মধ্যে মসৃণ প্রবৃত্তিকে উপেক্ষা করে (যার জন্য কিছু ম্যানুয়াল ইন্টারপোলেশন করা প্রয়োজন, বা কেবল আপনার ডেটার উচ্চতর রেজোলিউশন থাকতে হবে), আপনি ব্যবহার করতে পারেন pyplot.fill_between():

from matplotlib import pyplot as plt
import numpy as np

x = np.linspace(0, 30, 30)
y = np.sin(x/6*np.pi)
error = np.random.normal(0.1, 0.02, size=y.shape)
y += np.random.normal(0, 0.1, size=y.shape)

plt.plot(x, y, 'k-')
plt.fill_between(x, y-error, y+error)
plt.show()

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

আরও দেখুন matplotlib উদাহরণ


1
পারফেক্ট। হ্যাঁ আমি স্মুথযুক্ত রেখার সাথে একটি উদাহরণ অন্তর্ভুক্ত করার অর্থ চাইনি।
অস্টিন রিচার্ডসন

কোনও ছায়া গোছানো ব্যান্ডের পরিবর্তে এই ছায়া গোছানো বাক্সগুলি কীভাবে তৈরি করবেন কোনও ধারণা? আমার প্রথম প্রবৃত্তিটি অপব্যবহার করা ছিল lwতবে এটি অক্ষ হিসাবে একই ইউনিট ব্যবহার করবে না বলে মনে হয়।
বেনিয়ামিন ব্যানিয়ার

@ বেনজামিনব্যানিয়র আপনি কী বলতে চাইছেন তা আমি নিশ্চিত নই। মনে হচ্ছে যেন আপনি প্রতিটি পয়েন্টে একটি বাক্স আঁকতে চান, এর উচ্চতা ত্রুটি বারের সমান, আর প্রস্থটি এমন হওয়া উচিত যাতে তারা পার্শ্ববর্তী বাক্সগুলিকে সংযুক্ত করে (স্পর্শ করে)। এটা কি ঠিক?

1
@ এল_ডন মানে আপনি কি ব্ল্যাক লাইনের নীল ব্যান্ডের সাথে কিংবদন্তি চান, এবং পাঠ্যটি "ডেটা + 1 সিগমা ত্রুটি অঞ্চল" এর মতো কিছু হবে?

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

131

এটি মূলত এভার্ট দ্বারা সরবরাহ করা একই উত্তর , তবে এর কয়েকটি শীতল বিকল্প প্রদর্শন-বন্ধ করতে প্রসারিতfill_between

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

from matplotlib import pyplot as pl
import numpy as np

pl.clf()
pl.hold(1)

x = np.linspace(0, 30, 100)
y = np.sin(x) * 0.5
pl.plot(x, y, '-k')


x = np.linspace(0, 30, 30)
y = np.sin(x/6*np.pi)
error = np.random.normal(0.1, 0.02, size=y.shape) +.1
y += np.random.normal(0, 0.1, size=y.shape)

pl.plot(x, y, 'k', color='#CC4F1B')
pl.fill_between(x, y-error, y+error,
    alpha=0.5, edgecolor='#CC4F1B', facecolor='#FF9848')

y = np.cos(x/6*np.pi)    
error = np.random.rand(len(y)) * 0.5
y += np.random.normal(0, 0.1, size=y.shape)
pl.plot(x, y, 'k', color='#1B2ACC')
pl.fill_between(x, y-error, y+error,
    alpha=0.2, edgecolor='#1B2ACC', facecolor='#089FFF',
    linewidth=4, linestyle='dashdot', antialiased=True)



y = np.cos(x/6*np.pi)  + np.sin(x/3*np.pi)  
error = np.random.rand(len(y)) * 0.5
y += np.random.normal(0, 0.1, size=y.shape)
pl.plot(x, y, 'k', color='#3F7F4C')
pl.fill_between(x, y-error, y+error,
    alpha=1, edgecolor='#3F7F4C', facecolor='#7EFF99',
    linewidth=0)



pl.show()

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