here提供的示例代码生成此图:
我想知道是否有可能绘制出完全相同但“镜像”的东西,像这样:
以下是提供的示例代码,以防链接停止工作:
Public Sub GetIconImage(control As IRibbonControl, ByRef image)
Dim sPicPath As String
Dim stdPic As StdPicture
sPicPath = "C:\Users\[userName]\Pictures\test.jpg" 'Schweiz.png"
Set stdPic = stdole.StdFunctions.LoadPicture(sPicPath)
Set image = stdPic
End Sub
答案 0 :(得分:1)
您接近了,忘了放ax.invert_xaxis()
。但是,您仍然在左侧y轴上分配了y标记。
要在右侧分配刻度线,您需要首先创建一个双x轴(右侧y轴)实例(此处为ax1
),然后在其上绘制条形图。您可以通过传递[]
来隐藏左侧的y轴刻度和标签。
我提出了两种解决方法(除了现在使用ax1
代替ax
之外,其余代码相同)
解决方案1
ax.set_yticklabels([]) # Hide the left y-axis tick-labels
ax.set_yticks([]) # Hide the left y-axis ticks
ax1 = ax.twinx() # Create a twin x-axis
ax1.barh(y_pos, performance, xerr=error, align='center',
color='green', ecolor='black') # Plot using `ax1` instead of `ax`
ax1.set_yticks(y_pos)
ax1.set_yticklabels(people)
解决方案2(相同的输出):将图保持在左轴(ax
)上,反转x轴,并在ax1
上设置y-ticklabels
ax.invert_yaxis() # labels read top-to-bottom
ax.invert_xaxis() # labels read top-to-bottom
ax2 = ax.twinx()
ax2.set_ylim(ax.get_ylim())
ax2.set_yticks(y_pos)
ax2.set_yticklabels(people)
答案 1 :(得分:0)
另一种方法是简单地在x轴上设置反向限制,如下所示:
ax.set_xlim(14,0)