প্লটের পটভূমির রঙ কীভাবে পরিবর্তন করবেন?


226

আমি ম্যাটপ্লোটিলেবে একটি বিচ্ছুরিত প্লট তৈরি করছি এবং আসল প্লটটির পটভূমিটি কালো করে তোলা দরকার। আমি কীভাবে প্লটের মুখের রঙ পরিবর্তন করতে জানি:

fig = plt.figure()
fig.patch.set_facecolor('xkcd:mint green')

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

আমার সমস্যাটি হ'ল এটি প্লটের চারপাশের জায়গার রঙ পরিবর্তন করে। আমি কীভাবে প্লটের আসল পটভূমির রঙ পরিবর্তন করব?


9
@ এভার্ট যা বলেছিল তা ছাড়াও শুধু এফওয়াইআই, আপনি কেবল ব্যবহার করতে পারেন ax.patch.set_facecolor('black')( axঅক্ষগুলির উদাহরণটি কোথায় )। fig.patchচিত্রের পটভূমি এবং ax.patchঅক্ষগুলির পটভূমি।
জো কিংটন

উত্তর:


230

অবজেক্টের set_facecolor(color)পদ্ধতিটিaxes ব্যবহার করুন যা আপনি নিম্নলিখিত পদ্ধতির একটি তৈরি করেছেন:

  • আপনি একসাথে একটি চিত্র এবং অক্ষ / এস তৈরি করেছেন

    fig, ax = plt.subplots(nrows=1, ncols=1)
  • আপনি একটি চিত্র তৈরি করেছেন, তারপরে অক্ষ / এস পরে করুন

    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1) # nrows, ncols, index
    
  • আপনি স্টেটফুল এপিআই ব্যবহার করেছেন (আপনি যদি কয়েকটি লাইনের চেয়ে বেশি কিছু করছেন, এবং বিশেষত আপনার যদি একাধিক প্লট থাকে তবে উপরের অবজেক্ট-ভিত্তিক পদ্ধতিগুলি জীবনকে আরও সহজ করে তোলে কারণ আপনি নির্দিষ্ট চিত্রগুলিতে উল্লেখ করতে পারেন, নির্দিষ্ট অক্ষের উপর চক্রান্ত করতে পারেন এবং কাস্টমাইজ করতে পারেন পারেন)

    plt.plot(...)
    ax = plt.gca()
    

তারপরে আপনি ব্যবহার করতে পারেন set_facecolor:

ax.set_facecolor('xkcd:salmon')
ax.set_facecolor((1.0, 0.47, 0.42))

অক্ষ উপর গোলাপী পটভূমি সঙ্গে উদাহরণস্বরূপ প্লট

কী রঙ হতে পারে তার একটি রিফ্রেশার হিসাবে:

matplotlib.colors

ম্যাটপ্ল্লোলিব একটি রঙ নির্দিষ্ট করতে নিম্নলিখিত ফর্ম্যাটগুলি স্বীকৃতি দেয়:

  • [0, 1](উদাঃ, (0.1, 0.2, 0.5)বা (0.1, 0.2, 0.5, 0.3)) এর মধ্যে ভাসমান মানগুলির একটি আরজিবি বা আরজিবিএ টুপল ;
  • একটি হেক্স আরজিবি বা আরজিবিএ স্ট্রিং (যেমন, '#0F0F0F'বা '#0F0F0F0F');
  • [0, 1]ধূসর স্তর (যেমন, '0.5') জন্য সমেত একটি ফ্লোট মান একটি স্ট্রিং প্রতিনিধিত্ব ;
  • একটি {'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'};
  • একটি এক্স 11 / সিএসএস 4 রঙের নাম;
  • xkcd রঙ জরিপের একটি নাম ; উপসর্গযুক্ত 'xkcd:'(যেমন, 'xkcd:sky blue');
  • এর মধ্যে একটি {'tab:blue', 'tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown', 'tab:pink', 'tab:gray', 'tab:olive', 'tab:cyan'}হ'ল 'টি 10' শ্রেণিবদ্ধ প্যালেট (যা পূর্বনির্ধারিত রঙ চক্র) এর টেবিলের রং;
  • একটি "সিএন" বর্ণ বর্ণ, অর্থাত্ 'সি' এর পরে একটি একক অঙ্ক থাকে, যা ডিফল্ট সম্পত্তি চক্র ( matplotlib.rcParams['axes.prop_cycle']) এর সূচক ; সূচক শিল্পী তৈরির সময় ঘটে এবং যদি চক্রটির রঙ অন্তর্ভুক্ত না হয় তবে কালো রঙের ডিফল্ট হয়।

"সিএন" ব্যতীত রঙের সমস্ত স্ট্রিং স্পেসিফিকেশন কেস-সংবেদনশীল।


কুড়াল উত্পন্ন করার জন্য যদি অন্য কোনও সাধারণ উপায় থাকে তবে আমাকে জানান।
নিক টি

দেখে মনে হচ্ছে এই পদ্ধতিটি গত 3 বছরের এক পর্যায়ে অদৃশ্য হয়ে গেছে ... MethodNotFound
ডেমিস

@ ডিমিস এই পদ্ধতিটি সাম্প্রতিক বছরগুলিতে যুক্ত হয়েছিল। পুরানো সংস্করণগুলিতে কীভাবে এটি করা যায় তার জন্য ImportanceOfBeingEarnest এর উত্তর দেখুন ।
নিক টি

47

একটি পদ্ধতি হ'ল আপনার স্ক্রিপ্টের মধ্যে অক্ষের পটভূমির রঙের জন্য ম্যানুয়ালি ডিফল্ট সেট করা ( ম্যাটপ্লোটিলেব কাস্টমাইজ করা দেখুন ):

import matplotlib.pyplot as plt
plt.rcParams['axes.facecolor'] = 'black'

এটি নিক টি এর পদ্ধতির বিপরীতে যা একটি নির্দিষ্ট axesঅবজেক্টের পটভূমির রঙ পরিবর্তন করে । ডিফল্টগুলি পুনরায় সেট করা দরকারী যদি আপনি একই ধরণের শৈলীর সাথে একাধিক পৃথক প্লট তৈরি করে থাকেন এবং বিভিন্ন axesঅবজেক্ট পরিবর্তন করতে না চান ।

দ্রষ্টব্য: সমতুল্য

fig = plt.figure()
fig.patch.set_facecolor('black')

আপনার প্রশ্ন থেকে:

plt.rcParams['figure.facecolor'] = 'black'


41

এটার মতো কিছু? axisbgকীওয়ার্ডটি এতে ব্যবহার করুন subplot:

>>> from matplotlib.figure import Figure
>>> from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
>>> figure = Figure()
>>> canvas = FigureCanvas(figure)
>>> axes = figure.add_subplot(1, 1, 1, axisbg='red')
>>> axes.plot([1,2,3])
[<matplotlib.lines.Line2D object at 0x2827e50>]
>>> canvas.print_figure('red-bg.png')

(মঞ্জুর, কোনও বিচ্ছুরক প্লট নয় এবং একটি কালো পটভূমি নয়))

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


3
plt.subplot('111', axisbg='black')উইন্ডোজ ব্যবহার করে প্লটিং কমান্ডগুলির আগে আমার সাফল্য ছিল ।
হেলটনবাইকার

10
axis_bg axis_bgcolorMatplotlib 2.0.0 উঠিয়ে এবং matplotlib 2.2.0 সরানো হয়ে থাকে
RubenLaguna


12

অন্যান্য উত্তরের একটি পরামর্শ হ'ল ব্যবহার করা ax.set_axis_bgcolor("red")। এটি তবে হ্রাস করা হয়েছে এবং ম্যাটপ্লটলিব> = ভি 2.0 এ কাজ করে না।

ব্যবহার করার পরামর্শও রয়েছে ax.patch.set_facecolor("red")(MatPlotLib v1.5 এবং v2.2 উভয় ক্ষেত্রেই কাজ করে)। এটি দুর্দান্ত কাজ করার সময়, ভি 2.0 + এর জন্য আরও সহজ সমাধানটি ব্যবহার করা

ax.set_facecolor("red")


এফওয়াইআই, ax.set_axis_bgcolor("black")পাইথন v2.7.14 / MPL v1.5.1 এ কাজ করে তবে ax.set_facecolor()তা করে না not কোথাও এমপিএল v1.5.1 এবং v2.2.0 এর মধ্যে যথাযথ ফাংশনটি স্যুইচ হয়ে গেছে।
ডেমিস

1
@ ডেমিস আপনার যদি এমন কোনও সমাধানের প্রয়োজন হয় যা সমস্ত সংস্করণে কাজ করে তবে ব্যবহার করুন ax.patch.set_facecolor("red")। প্রস্তাবিত উপায়ে matplotlib 2.0 থেকে বাদাম ax.set_facecolor
ImportanceOfBeingEnnest

4

সবচেয়ে সহজ জিনিসটি সম্ভবত আপনি প্লটটি তৈরি করার সময় রঙ সরবরাহ করা হয়:

fig1 = plt.figure(facecolor=(1, 1, 1))

অথবা

fig1, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, facecolor=(1, 1, 1))

এটি কেবল উইন্ডোটির পটভূমির রঙ পরিবর্তন করে, প্রকৃত প্লটের রঙ নয়
টম কাপিস

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