वर्तमान में, मैं अपने डेटा को दो वक्रों के रूप में प्लॉट करने के लिए निम्न कोड का उपयोग कर सकता हूं।

from numpy import *
import math
import matplotlib.pyplot as plt

t = [1,2,4,8] 
raw_1 = [0.02, 0.02, 0.3, 0.4] 
raw_2 = [0.6, 0.7, 0.2, 0.3]
plt.plot(t, raw_1, color='r', marker='o') 
plt.plot(t, raw_2, color='b', marker='o')  
plt.show()

हालाँकि, मैं x-अक्ष को अरेखीय बनाने की आशा करता हूँ। उदाहरण के लिए, केवल १, २, ४, ८ ही दिखाई दे रहे हैं और उनके एक्स-टिक समान दूरी से अलग हो गए हैं। जैसा कि इस चित्र में दिखाया गया है:यहां छवि विवरण दर्ज करें

मैं Matplotlib से बहुत परिचित नहीं हूं, क्या कोई मुझे बता सकता है कि मैं उपरोक्त एक्स-अक्ष के साथ प्लॉट कैसे उत्पन्न कर सकता हूं?

मैंने plt.xscale ('लॉग') की कोशिश की, लेकिन मुझे निम्नलिखित प्लॉट मिला: यहां छवि विवरण दर्ज करें

2 आसन्न नोड्स के बीच की दूरी अच्छी लगती है, लेकिन xticks अच्छी तरह से नहीं दिखता है।

0
Jim Wang 22 अक्टूबर 2020, 08:04

1 उत्तर

सबसे बढ़िया उत्तर

इसके लिए मनमाने ढंग से समान दूरी वाली संख्याओं (range() का उपयोग करना सुविधाजनक है) के विरुद्ध प्लॉट करें, फिर लेबल को अपने वास्तविक लेबल से बदलें:

t = [1,2,4,8] 
raw_1 = [0.02, 0.02, 0.3, 0.4] 
raw_2 = [0.6, 0.7, 0.2, 0.3]
x = range(len(t))
plt.plot(x, raw_1, color='r', marker='o') 
plt.plot(x, raw_2, color='b', marker='o')
plt.xticks(x,t)
plt.show()

enter image description here

1
Diziet Asahi 22 अक्टूबर 2020, 08:29