ax_right = ax.twinx()
时间: 2024-05-20 07:13:55 浏览: 69
这段代码是在matplotlib中创建一个与原先图形共享x轴的新的y轴。其中,ax是原先图形的坐标系对象,通过调用twinx()方法可以创建与原先图形共享x轴的新的坐标系对象ax_right。这个新的坐标系对象可以用来绘制与原先图形不同的数据,例如右侧的纵向柱状图或折线图等。在共享x轴的情况下,两个y轴的刻度标签和网格线是对齐的,方便比较不同变量之间的趋势和关系。
相关问题
import numpy as np import matplotlib.pyplot as plt plt.rcParams[‘font.sans-serif’]=[‘SimHei’] plt.rcParams[‘axes.unicode_minus’]=False month_x=np.arange(1,13,1) data_tem=np.array([2.0,2.2,3.3,4.5,6.3,10.2,20.3,33.4,23.0,16.5,12.0,6.2]) data_precipitation=np.array([2.6,5.9,9.0,26.4,28.7,70.7,175.6,182.2,48.7,18.8,6.0,2.3]) data_evaporation=np.array([2.0,4.9,7.0,23.2,25.6,76.7,135.6,162.2,32.6,20.0,6.4,3.3]) fig,ax=plt.subplots() bar_ev=ax.bar(month_x,data_precipitation, color=‘pink’) bar_pre=ax.bar(month_x,data_precipitation, bottom=data_evaporation,color=‘skyblue’) ax.set_ylabel(‘水量(ml)’) ax.set_title(‘2020080603051’) ax_right=ax.twinx() line=ax_right.plot(month_x,data_tem,‘o-m’) ax_right.set_ylabel(‘气温(∘ ^\circ ∘ C)’) plt.legend([bar_ev,bar_pre,line[0]],[‘蒸发量’,‘降水量’,‘平均气温’],shadow=True,fancybox=True) plt.show()修改这段代码至python可运行
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
month_x = np.arange(1, 13, 1)
data_tem = np.array([2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 33.4, 23.0, 16.5, 12.0, 6.2])
data_precipitation = np.array([2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3])
data_evaporation = np.array([2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3])
fig, ax = plt.subplots()
bar_ev = ax.bar(month_x, data_precipitation, color='pink')
bar_pre = ax.bar(month_x, data_precipitation, bottom=data_evaporation, color='skyblue')
ax.set_ylabel('水量(ml)')
ax.set_title('2020080603051')
ax_right = ax.twinx()
line = ax_right.plot(month_x, data_tem, 'o-m')
ax_right.set_ylabel('气温(℃)')
plt.legend([bar_ev, bar_pre, line[0]],
['蒸发量', '降水量', '平均气温'], shadow=True, fancybox=True)
plt.show()
import numpy as np import matplotlib.pyplot as plt plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams["axes.unicode_minus"] = False month_x = np.arange(1, 13, 1) data_A= np.array([47,64,31,23,29,42,25,33,65,63,63,61]) data_B= np.array([28,66,183,207,83,176,165,174,377,288,168,203]) fig, ax = plt.subplots() bar_A = ax.bar(month_x, data_A, color='b', tick_label=['5日','6日','7日','8日','9日','10日','11日','12日','13日','14日','15日','16日'],width=bar_width) bar_B = ax.bar(month_x+bar_width, data_B, color='r',width=bar_width) ax.set_ylabel('在售数量(个)') ax_right = ax.twinx() ax_right.set_ylabel('求购数量(个)') ax.set_title('在售数量与求购数量对比图') plt.legend([bar_A, bar_B], ['在售数量', '求购数量'], shadow=True, fancybox=True) plt.xticks(month_x+bar_width/2) plt.ylim([0,400]) plt.grid(axis='y', linestyle='--') plt.show()修改为误差棒图
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
month_x = np.arange(1, 13, 1)
data_A= np.array([47,64,31,23,29,42,25,33,65,63,63,61])
data_B= np.array([28,66,183,207,83,176,165,174,377,288,168,203])
fig, ax = plt.subplots()
bar_width = 0.35
bar_A = ax.bar(month_x, data_A, color='b', tick_label=['5日','6日','7日','8日','9日','10日','11日','12日','13日','14日','15日','16日'], width=bar_width, yerr=np.random.rand(len(month_x))*5)
bar_B = ax.bar(month_x+bar_width, data_B, color='r',width=bar_width, yerr=np.random.rand(len(month_x))*5)
ax.set_ylabel('数量(个)')
ax_right = ax.twinx()
ax_right.set_ylabel('数量(个)')
ax.set_title('在售数量与求购数量对比图')
plt.legend([bar_A, bar_B], ['在售数量', '求购数量'], shadow=True, fancybox=True)
plt.xticks(month_x+bar_width/2)
plt.ylim([0,400])
plt.grid(axis='y', linestyle='--')
plt.show()