为什么不显示线而只显示点?

问题描述 投票:0回答:1

我写了一段代码来绘制 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()

我附上了下面图 3 的输出。

python python-3.x numpy matplotlib scipy
1个回答
0
投票

当您在点之前和线之前绘制子图时,可以解决此问题。然后它应该将所有内容绘制在一张图中。

© www.soinside.com 2019 - 2024. All rights reserved.