ম্যাটপ্ল্লোলিবের প্লটের শীর্ষে এক্স-অক্ষটি সরানো


111

ম্যাটপ্ল্লোলিবের হিটম্যাপগুলি সম্পর্কে এই প্রশ্নের ভিত্তিতে , আমি এক্স-অক্ষের শিরোনামকে প্লটের শীর্ষে স্থানান্তরিত করতে চেয়েছিলাম।

import matplotlib.pyplot as plt
import numpy as np
column_labels = list('ABCD')
row_labels = list('WXYZ')
data = np.random.rand(4,4)
fig, ax = plt.subplots()
heatmap = ax.pcolor(data, cmap=plt.cm.Blues)

# put the major ticks at the middle of each cell
ax.set_xticks(np.arange(data.shape[0])+0.5, minor=False)
ax.set_yticks(np.arange(data.shape[1])+0.5, minor=False)

# want a more natural, table-like display
ax.invert_yaxis()
ax.xaxis.set_label_position('top') # <-- This doesn't work!

ax.set_xticklabels(row_labels, minor=False)
ax.set_yticklabels(column_labels, minor=False)
plt.show()

তবে ম্যাটপ্লটলিবের সেট_লবেল_পজিশনে কল করা হচ্ছে (উপরে উল্লিখিত হিসাবে) পছন্দসই প্রভাব আছে বলে মনে হয় না। এখানে আমার আউটপুট:

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

আমি কি ভুল করছি?

উত্তর:


152

ব্যবহার

ax.xaxis.tick_top()

ছবির শীর্ষে টিক চিহ্ন রাখার জন্য। আদেশ

ax.set_xlabel('X LABEL')    
ax.xaxis.set_label_position('top') 

টিক চিহ্নগুলি নয়, লেবেলকে প্রভাবিত করে।

import matplotlib.pyplot as plt
import numpy as np
column_labels = list('ABCD')
row_labels = list('WXYZ')
data = np.random.rand(4, 4)
fig, ax = plt.subplots()
heatmap = ax.pcolor(data, cmap=plt.cm.Blues)

# put the major ticks at the middle of each cell
ax.set_xticks(np.arange(data.shape[1]) + 0.5, minor=False)
ax.set_yticks(np.arange(data.shape[0]) + 0.5, minor=False)

# want a more natural, table-like display
ax.invert_yaxis()
ax.xaxis.tick_top()

ax.set_xticklabels(column_labels, minor=False)
ax.set_yticklabels(row_labels, minor=False)
plt.show()

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


আপনি দয়া করে আমাকে বলতে পারেন কীভাবে বি এবং সি এর মধ্যে এক্স অক্ষ রাখবেন? আমি পুরো দিন চেষ্টা করেছি কিন্তু কোনও সাফল্য নেই
ড্যানিপানিজ

33

এর set_ticks_positionচেয়ে আপনি চাই set_label_position:

ax.xaxis.set_ticks_position('top') # the rest is the same

এটি আমাকে দেয়:

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


আপনি দয়া করে আমাকে বলতে পারেন কীভাবে বি এবং সি এর মধ্যে এক্স অক্ষ রাখবেন? আমি পুরো দিন চেষ্টা করেছি কিন্তু কোনও সাফল্য নেই
ড্যানিপানিজ

16

টিক বৈশিষ্ট্যগুলি সেট করার জন্য টিক_প্যারামগুলি খুব দরকারী। লেবেলগুলি এর সাথে শীর্ষে স্থানান্তরিত হতে পারে:

    ax.tick_params(labelbottom=False,labeltop=True)

কাওয়ার্গগুলি বুলিয়ান হয় তাই যথাক্রমে হওয়া উচিত Falseএবং Trueঅন্যথায় পুরোপুরি কার্যকর হয়!
মিলো উইলোন্ডেক

1

আপনি যদি টিকগুলি (লেবেল নয়) শীর্ষে এবং নীচে (কেবল শীর্ষে নয়) প্রদর্শিত হতে চান তবে আপনাকে কিছু অতিরিক্ত ম্যাসেজ করতে হবে। আনটবুর কোডটিতে সামান্য পরিবর্তনটিই আমি এটি করতে পারি The

import matplotlib.pyplot as plt
import numpy as np
column_labels = list('ABCD')
row_labels = list('WXYZ')
data = np.random.rand(4, 4)
fig, ax = plt.subplots()
heatmap = ax.pcolor(data, cmap=plt.cm.Blues)

# put the major ticks at the middle of each cell
ax.set_xticks(np.arange(data.shape[1]) + 0.5, minor=False)
ax.set_yticks(np.arange(data.shape[0]) + 0.5, minor=False)

# want a more natural, table-like display
ax.invert_yaxis()
ax.xaxis.tick_top()
ax.xaxis.set_ticks_position('both') # THIS IS THE ONLY CHANGE

ax.set_xticklabels(column_labels, minor=False)
ax.set_yticklabels(row_labels, minor=False)
plt.show()

আউটপুট:

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


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