ম্যাটপ্ল্লোলিবের প্লটের জন্য অক্ষ, টিক্স এবং লেবেলের রঙ পরিবর্তন করা


99

আমি অক্ষের রঙ পরিবর্তন করতে চাই, পাশাপাশি টিক্স এবং মান-লেবেলগুলি একটি প্লটটির জন্য ম্যাটপ্ল্লোলিব একটি পাইকিউটি ব্যবহার করেছিলাম।

কোন ধারনা?


উত্তর:


171

দ্রুত উদাহরণ হিসাবে (সম্ভাব্য সদৃশ প্রশ্নের তুলনায় কিছুটা পরিষ্কার পদ্ধতি ব্যবহার করে):

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)

ax.plot(range(10))
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')

ax.spines['bottom'].set_color('red')
ax.spines['top'].set_color('red')
ax.xaxis.label.set_color('red')
ax.tick_params(axis='x', colors='red')

plt.show()

বিকল্প পাঠ


আপনাকে এখন পর্যন্ত ধন্যবাদ। ax.tick_params (অক্ষ = 'x', রং = 'লাল') একটি অক্ষ তৈরি করে একটি সাবস্লব্লোটের 'টিক_প্রেমস' ত্রুটি নেই। তুমি কি জানো কেন?
রিচার্ড ডুর

14
হুম ... এটি অদ্ভুত ... আপনি ম্যাটপ্ল্লিটিব এর কোন সংস্করণ ব্যবহার করছেন? একটি workaround করতে হয় [t.set_color('red') for t in ax.xaxis.get_ticklines()]এবং [t.set_color('red') for t in ax.xaxis.get_ticklabels()]
জো কিংটন

33

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

এই স্নিপেট দুটি অঙ্ক করে, প্রথমটি অক্ষ, টিক এবং টিক্লেবেলের পরিবর্তিত রঙ এবং দ্বিতীয়টি ডিফল্ট আরসি পরামিতি সহ।

import matplotlib.pyplot as plt
with plt.rc_context({'axes.edgecolor':'orange', 'xtick.color':'red', 'ytick.color':'green', 'figure.facecolor':'white'}):
    # Temporary rc parameters in effect
    fig, (ax1, ax2) = plt.subplots(1,2)
    ax1.plot(range(10))
    ax2.plot(range(10))
# Back to default rc parameters
fig, ax = plt.subplots()
ax.plot(range(10))

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

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

আপনি plt.rcParamsসমস্ত উপলব্ধ আরসি প্যারামিটারগুলি দেখতে টাইপ করতে পারেন এবং কীওয়ার্ডগুলির জন্য অনুসন্ধানের জন্য তালিকা বোঝাপড়াটি ব্যবহার করতে পারেন:

# Search for all parameters containing the word 'color'
[(param, value) for param, value in plt.rcParams.items() if 'color' in param]

0

পূর্ববর্তী অবদানকারীদের দ্বারা অনুপ্রাণিত, এটি তিনটি অক্ষের একটি উদাহরণ।

import matplotlib.pyplot as plt

x_values1=[1,2,3,4,5]
y_values1=[1,2,2,4,1]

x_values2=[-1000,-800,-600,-400,-200]
y_values2=[10,20,39,40,50]

x_values3=[150,200,250,300,350]
y_values3=[-10,-20,-30,-40,-50]


fig=plt.figure()
ax=fig.add_subplot(111, label="1")
ax2=fig.add_subplot(111, label="2", frame_on=False)
ax3=fig.add_subplot(111, label="3", frame_on=False)

ax.plot(x_values1, y_values1, color="C0")
ax.set_xlabel("x label 1", color="C0")
ax.set_ylabel("y label 1", color="C0")
ax.tick_params(axis='x', colors="C0")
ax.tick_params(axis='y', colors="C0")

ax2.scatter(x_values2, y_values2, color="C1")
ax2.set_xlabel('x label 2', color="C1") 
ax2.xaxis.set_label_position('bottom') # set the position of the second x-axis to bottom
ax2.spines['bottom'].set_position(('outward', 36))
ax2.tick_params(axis='x', colors="C1")
ax2.set_ylabel('y label 2', color="C1")       
ax2.yaxis.tick_right()
ax2.yaxis.set_label_position('right') 
ax2.tick_params(axis='y', colors="C1")

ax3.plot(x_values3, y_values3, color="C2")
ax3.set_xlabel('x label 3', color='C2')
ax3.xaxis.set_label_position('bottom')
ax3.spines['bottom'].set_position(('outward', 72))
ax3.tick_params(axis='x', colors='C2')
ax3.set_ylabel('y label 3', color='C2')
ax3.yaxis.tick_right()
ax3.yaxis.set_label_position('right') 
ax3.spines['right'].set_position(('outward', 36))
ax3.tick_params(axis='y', colors='C2')


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