我得到了兩個y值的串列。
正如你可以看到下面圖中的紅線,y1刻度線中的6和y2刻度線中的30需要在同一水平線上(或看起來相同)。
是否可以用maplotlib來實作這個目標?
list_y1 = [
7.31, 7.30,7.29, 7.29, 7。 44, 8.05, 7.46, 7.79, 8.35, 8.95,
8.95, 8.37, 7.51, 8.34, 8. 39, 8.41, 8.46, 8.69, 8.52, 8.51,
8.46, 8.97, 9.35, 9.32, 9。 24, 9.46, 9.22, 9.16, 9.08, 9.00,
8.82, 8.57, 8.66, 8.79, 8。 47, 8.58, 8.62, 8.66, 9.19, 9.20,
9.13, 9.43 ]
list_y2 = [
30.37, 30.51, 30.62, 30.52, 31。 31, 33.82, 31.41, 32.78, 35.29, 37.85,
37.85, 35.36, 31.81, 35.35, 35。 56,35.61,35.94,36.36,36.10,35.81。
35.35, 37.14, 38.49, 38.34, 38. 04, 38.90, 37.84, 37.58, 37.25, 36.90。
36.17, 35.12, 35.53, 36.06, 34. 73, 35.15, 35.30, 34.64, 36.76, 36.81。
36.54, 37.71 ]
list_x = [
100q1, 100q2, 100q3, 100q4, 101q1,101q2, 101q3, 101q4, 102q1, 102q2,
102Q3, 102Q4, 103Q1, 103Q2, 103Q3,103Q4, 104Q1, 104Q2, 104Q3, 104Q4,
105Q1, 105Q2, 105Q3, 105Q4, 106Q1,106Q2, 106Q3, 106Q4, 107Q1, 107Q2,
107Q3, 107Q4, 108Q1, 108Q2, 108Q3,108Q4, 109Q1, 109Q2, 109Q3, 109Q4。
110Q1, 110Q2 ]
uj5u.com熱心網友回復:
最簡單的方法是將兩個軸的y限制設定為(4, 10)和(25, 40):
ax1.set_ylim(4, 10)
ax2.set_ylim(25, 40)
完整的代碼
import matplotlib.pyplot as plt
from matplotlib import cm
list_y1 = [7.31, 7.30, 7.29, 7.29, 7。 44, 8.05, 7.46, 7.79, 8.35, 8.95,
8.95, 8.37, 7.51, 8.34, 8. 39, 8.41, 8.46, 8.69, 8.52, 8.51,
8.46, 8.97, 9.35, 9.32, 9。 24, 9.46, 9.22, 9.16, 9.08, 9.00。
8.82, 8.57, 8.66, 8.79, 8。 47, 8.58, 8.62, 8.66, 9.19, 9.20,
9.13, 9.43]
list_y2 = [30.37, 30.51, 30.62, 30.52, 31. 31, 33.82, 31.41, 32.78, 35.29, 37.85,
37.85, 35.36, 31.81, 35.35, 35。 56,35.61,35.94,36.36,36.10,35.81。
35.35, 37.14, 38.49, 38.34, 38. 04, 38.90, 37.84, 37.58, 37.25, 36.90。
36.17, 35.12, 35.53, 36.06, 34. 73, 35.15, 35.30, 34.64, 36.76, 36.81。
36.54, 37.71]
list_x = ['100Q1'/span>, '100Q2'/span>, '100Q3'/span>, '100Q4'/span>, '101Q1'/span>, '101Q2'/span>, '101Q3'/span>, '101Q4'/span>, '102Q1'/span>, '102Q2'/span>,
'102Q3', '102Q4', '103Q1', '103Q2', '103Q3'。'103Q4'/span>, '104Q1'/span>, '104Q2'/span>, '104Q3'/span>, '104Q4'/span>,
'105Q1'/span>, '105Q2'/span>, '105Q3'/span>, '105Q4'/span>, '106Q1'/span>, '106Q2'/span>, '106Q3'/span>, '106Q4'/span>, '107Q1'/span>, '107Q2'/span>,
'107Q3', '107Q4', '108Q1', '108Q2', '108Q3', '108Q4'/span>, '109Q1'/span>, '109Q2'/span>, '109Q3'/span>, '109Q4'/span>,
'110Q1', '110Q2']
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
cmap = cm.get_cmap('tab10')
ax1.plot(list_x, list_y1, color = cmap(0), linestyle = '--', lineewidth = 2)
ax2.plot(list_x, list_y2, color = cmap(0.1), linestyle = '-', lineewidth = 2)
plt.setp(ax1.xaxis.get_majorticklabels(), rotation = 90)
ax1.axhline(y = 6, color = 'red' , lineewidth = 0.5)
ax1.set_ylim(4, 10)
ax2.set_ylim(25, 40)
plt.show()
計劃
因為在任何情況下,你都必須設定軸的限制,而且第二種方式更復雜,所以我建議采用第一種方式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/312411.html
標籤:
下一篇:8080埠已被使用



