Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对数比例中的mpld3打印不正确_Python_Matplotlib_Plot - Fatal编程技术网

Python 对数比例中的mpld3打印不正确

Python 对数比例中的mpld3打印不正确,python,matplotlib,plot,Python,Matplotlib,Plot,在mpld3中绘图时,我注意到一个非常令人费解的行为。我做了三件事:1。按线性比例绘制数据。2.以线性比例绘制数据的对数10。3.在对数刻度上绘制原始数据。图2和图3看起来应该是一样的,但它们不是。在图3中,y轴似乎是反转的 备选案文1 import numpy as np import matplotlib import matplotlib.pyplot as plt import mpld3 from mpld3 import plugins, utils x = [1, 10, 100

在mpld3中绘图时,我注意到一个非常令人费解的行为。我做了三件事:1。按线性比例绘制数据。2.以线性比例绘制数据的对数10。3.在对数刻度上绘制原始数据。图2和图3看起来应该是一样的,但它们不是。在图3中,y轴似乎是反转的

备选案文1

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import mpld3
from mpld3 import plugins, utils

x = [1, 10, 100, 1000]
y = [1, 10, 100, 1000]

fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(x, y, s=25, c='orange')
#ax.scatter(np.log10(x), np.log10(y), s=25, c='orange')
#ax.set_xscale('log')
#ax.set_yscale('log')
plugins.connect(fig, plugins.MousePosition())
mpld3.show()
备选案文2

#ax.scatter(x, y, s=25, c='orange')
ax.scatter(np.log10(x), np.log10(y), s=25, c='orange')
#ax.set_xscale('log')
#ax.set_yscale('log')
备选案文3

ax.scatter(x, y, s=25, c='orange')
#ax.scatter(np.log10(x), np.log10(y), s=25, c='orange')
ax.set_xscale('log')
ax.set_yscale('log')

我是否遗漏了什么,或者这可能是一个错误?页面中包含的JSON数据似乎像预期的那样包含ylim和ydomain等,因此我对图形是如何反转的感到非常困惑

一种可能的解决方法是使用绘图而不是散布来绘制点。这个bug似乎只是散射函数的一个问题。因此,不是:

ax.scatter(x, y)
使用以下命令:

ax.plot(x, y, marker='o', linestyle='')

使用
matplotlib
v1.3.1的一些测试数据,我得到的结果与预期完全一致,没有任何反转。如果可能,您可以提供再现错误的最小工作示例,例如使用一些测试数据。还要检查
matplotlib
版本。我添加了更多代码。如何检查matplotlib版本?我在过去一个月内安装了它,所以我希望它是相当最新的。谢谢。好的,我导入了matplotlib并打印了matplotlib。版本为,给出了1.3.1。好的,我可以确认这在
mpld3
0.2版中也发生过。对不起,我没发现你在用这个。它似乎正在切换x轴和y轴(尝试播放数据以查看此情况)。它看起来不像是在交换轴,例如使用x=[1100,10000,1000000];y=[4,8,16,32]。但是y轴反转,两个轴上的值与您期望的不匹配(例如,我期望点与x轴上的0、2、4和6对齐,但它们不匹配)。