相关疑难解决方法(0)

防止matplotlib.pyplot中的科学记数法

我一直试图在pyplot中压制科学记数法几个小时了.在尝试多种解决方案但没有成功之后,我想要一些帮助.

plt.plot(range(2003,2012,1),range(200300,201200,100))
# several solutions from other questions have not worked, including
# plt.ticklabel_format(style='sci', axis='x', scilimits=(-1000000,1000000))
# ax.get_xaxis().get_major_formatter().set_useOffset(False)
plt.show()
Run Code Online (Sandbox Code Playgroud)

情节

提前致谢.

python matplotlib

41
推荐指数
1
解决办法
4万
查看次数

如何消除matplotlib轴的相对位移

当我尝试对一个数字足够大的范围进行绘图时,我会得到一个相对于所有刻度相对偏移的轴.例如:

plot([1000, 1001, 1002], [1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

我在横坐标轴上得到这些刻度:

0.0     0.5     1.0     1.5     2.0
                               +1e3
Run Code Online (Sandbox Code Playgroud)

问题是如何删除+1e3和获取:

1000.0  1000.5  1001.0  1001.5  1002.0
Run Code Online (Sandbox Code Playgroud)

python axis matplotlib

25
推荐指数
1
解决办法
5851
查看次数

Seaborn/Matplotlib:如何在事实y轴上抑制科学记数法

这个问题下面的简单示例我无法解决.

NB其他一些Seaborn绘图方法似乎有压制指数形式的论据,但似乎没有factorplots.我尝试了一些Matplotlib解决方案,包括在这个类似问题中提出的解决方案但没有工作.这也不是这个问题的愚蠢行为.我经常使用factorplots,理想情况下想找到一个合适的解决方案,而不是一个变通方法.

data = {'reports': [4, 24, 31, 2, 3],'coverage': [35050800, 54899767, 57890789, 62890798, 70897871]}
df = pd.DataFrame(data)
df
Run Code Online (Sandbox Code Playgroud)

生成此数据框:

    coverage    reports
0   35050800    4
1   54899767    24
2   57890789    31
3   62890798    2
4   70897871    3
Run Code Online (Sandbox Code Playgroud)

然后这个Seaborn代码:

sns.factorplot(y="coverage", x="reports", kind='bar', data=df, label="Total") 
Run Code Online (Sandbox Code Playgroud)

产生这个情节:

在此输入图像描述

有没有办法让y轴根据coverage值显示适当的数字刻度?

python matplotlib seaborn

7
推荐指数
2
解决办法
5781
查看次数

matplotlib 在某些数据集上生成奇怪的 y 轴?

我正在编写一个 python 2.7 脚本,它在循环中生成多个 matplotlib 图。

import matplotlib.pyplot as plt
import numpy as np
Run Code Online (Sandbox Code Playgroud)

在这里,我缩放数据,所以第一个点是 100

scalefac = 100/float(sdata[0])
for dat in range(len(sdata)):
    sdata[dat] = float(sdata[dat])*scalefac
Run Code Online (Sandbox Code Playgroud)

然后绘制它。

y = sdata
x = np.arange(0, len(sdates))

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
aaa = tuple(sdates)
ax.scatter(x,y)
ax.plot(x,y)
plt.xticks(x,aaa)

plt.xlabel('date of run (mm/dd/yy)')
plt.ylabel('power % of baseline')
plt.title('Power Estimation Over Time')
plt.grid(True)
plt.savefig("dump/graph.%s.png" % str(dirlist[d])) 
plt.close(fig)
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常,但仅当 y 数据不太靠近时。例如,当 y 为 [100, 95] 或 [100, 100, 110] 时,y 轴具有正确的单位并且点位于正确的位置。当 y 为 …

python numpy matplotlib python-2.7

6
推荐指数
1
解决办法
3475
查看次数

如何在pandas和matplotlib中避免使用1e7的轴值

使用下面的代码生成一个图,其中y轴为0.0到2.5 1e7.如何避免使用1e7的值?

    import pandas as pd
    import matplotlib.pyplot as plt
    a = {'Test1': {1: 21867186, 4: 20145576, 10: 18018537},
         'Test2': {1: 23256313, 4: 21668216, 10: 19795367}}

    d = pd.DataFrame(a).T
    #print d

    f = plt.figure()

    plt.title('Title here!', color='black')
    d.plot(kind='bar', ax=f.gca())
    plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib pandas

5
推荐指数
1
解决办法
3124
查看次数

在Python中的符号学图上使用matplotlib防止轴采用科学记数法(10的幂)

我读过这里(如何防止数字在Python matplotlib图中更改为指数形式)和这里(Matplotlib:在对数图中禁用十的幂)并尝试了他们的解决方案但无济于事。

如何将 y 轴转换为显示普通十进制数字而不是科学记数法?请注意,这是 Python 3.5.2。

在此输入图像描述

这是我的代码:

#Imports:
import matplotlib.pyplot as plt

possible_chars = 94
max_length = 8
pw_possibilities = [] 
for num_chars in range(1, max_length+1):
    pw_possibilities.append(possible_chars**num_chars)

x = range(1, max_length+1)
y = pw_possibilities 

#plot 
plt.figure()
plt.semilogy(x, y, 'o-')
plt.xlabel("num chars in password")
plt.ylabel("number of password possibilities")
plt.title("password (PW) possibilities verses # chars in PW")
plt.show()
Run Code Online (Sandbox Code Playgroud)

python plot scientific-notation matplotlib python-3.x

3
推荐指数
1
解决办法
7952
查看次数