我写了一段代码来绘制 3 个图,其中 2 个正在工作,但第 3 个图给我带来了一些麻烦。 下面给出的代码应该给出图 3 作为具有两个 y 轴的输出。但代码可以工作到
#Plotting the points
部分,因为它绘制了图中的点,但我无法获得平滑的线条和另一个 y 轴。
""" Current and Resistance vs Distance """
currentAndResistanceVSDistanceGraph = plt.figure(3)
# Plotting the points
plt.plot(xAxisData, yAxisDataCurrent, marker = 'o', markersize = 3, markeredgecolor = "black", markerfacecolor = "black", linestyle = "None")
plt.plot(xAxisData, yAxisDataResistance, marker = 's', markersize = 3, markeredgecolor = "black", markerfacecolor = "black", linestyle = "None")
# Plotting the smooth line joining all the data points
currentSpline = make_interp_spline(xAxisData,yAxisDataCurrent)
resistanceSpline = make_interp_spline(xAxisData,yAxisDataResistance)
newXAxisData = linspace(min(xAxisData),max(xAxisData),10000)
newYAxisDataForCurrent = currentSpline(newXAxisData)
newYAxisDataForResistance = resistanceSpline(newXAxisData)
# Plotting the graph
plt.title(titleNameCurrentResistance)
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.plot(newXAxisData, newYAxisDataForCurrent, 'b-', label = yAxisLabelCurrent)
ax2.plot(newXAxisData, newYAxisDataForResistance, 'r-', label = yAxisLabelResistance)
ax1.set_xlabel(xAxisLabel)
ax1.set_ylabel(yAxisLabelCurrent)
ax2.set_ylabel(yAxisLabelResistance)
currentAndResistanceVSDistanceGraph.show()
# To stop auto exit
input()
当您在点之前和线之前绘制子图时,可以解决此问题。然后它应该将所有内容绘制在一张图中。