我正在创建一个月度整合功能,它不喜欢我如何使用我的代码的这个特定片段:
For Each ws In Worksheets
If Len(ws.Name) <= 5 Then
ws.Range("B7:C7").Select
Selection.ClearContents
Selection.AutoFill Destination:=Range("B7:C100"), Type:=xlFillDefault
Range("B7:C100").Select
End If
Next
Run Code Online (Sandbox Code Playgroud)
所有客户端配置文件都通过模板填写,该模板为每个新个人自行复制,因此配置文件都是标准化的.所有用户配置文件都<= 5个字符(首字母缩写词).所以我的代码的意图是检查标签是否<= 5个字符,然后如果是 - 选择第一个范围B7:C7并清除它.接下来,我们将此清除的过滤器应用于所有其他单元格(低至100).
我已经将ws定义为我的工作表变量,我不明白为什么我不能将ws.range设置为B7:C7.我很感激你的见解!
编辑:我已经改写了这个问题,因为它没有应该的那么清楚。 我有 2 个数据集(df3 和 df4,分别保存总扬程和效率的信息)和一个共同的自变量(流速)。我希望在同一个图中绘制它们,但因变量具有不同的 Y 轴。我最初将 lmplot 用于多项式阶功能,但是在将两个图都显示在一个窗口中时没有成功。我需要帮助将我的散点图和回归图组合成一个显示数据集之间重叠的图。
我使用以下方法来生成我的图表:
ax2.scatter(df3['Flow_Rate_(KG/S)'], df2['Efficiency_%'], color='pink')
ax2.scatter(df4['Flow_Rate_(KG/S)'], df4['Total Head'], color='teal')
plt.show()
Run Code Online (Sandbox Code Playgroud)
将线相互绘制很重要的原因是为了监控泵的性能,我们需要同时拥有泵的总扬程 (M) 和效率百分比,以了解关系和随后的性能下降。
我能想到的唯一另一种方法是将多项式函数写成方程,将它们放入绘图函数的参数中,然后将它们绘制成这样。我还没有尝试过这个,但我想在我走这条路之前我会问是否还有其他选择。
感谢您的时间。
解决方案:对于那些感兴趣的人,我使用了带有 regplot 的 .twinx() 库,如下所示。
fig, ax = plt.subplots()
ax2 = ax.twinx() #This allows the common axes (flow rate) to be shared
sbn.regplot(x="Flow_Rate_(KG/S)", y="Total Head", data=df3, order=2, ax=ax)
sbn.regplot(x="Flow_Rate_(KG/S)", y="Efficiency_%", data=df4, order=2,
ax=ax2)
ax2.set_ylim(0,1)#This is used to set the limit for efficiency. Without this being set, the curves do not line up.
Run Code Online (Sandbox Code Playgroud) excel ×1
excel-2010 ×1
excel-vba ×1
matplotlib ×1
plot ×1
python ×1
regression ×1
seaborn ×1
vba ×1