相关疑难解决方法(0)

Matplotlib:指定刻度标签的浮点数格式

我试图在matplotlib子图环境中将格式设置为两个十进制数.不幸的是,我不知道如何解决这个任务.

为了防止在y轴上使用科学记数法,我ScalarFormatter(useOffset=False)可以在下面的代码片段中看到.我认为我的任务应该通过将更多的选项/参数传递给使用的格式化程序来解决.但是,我在matplotlib的文档中找不到任何提示.

如何设置两位小数或无(两种情况都需要)?遗憾的是,我无法提供样本数据.


- SNIPPET -

f, axarr = plt.subplots(3, sharex=True)

data = conv_air
x = range(0, len(data))

axarr[0].scatter(x, data)
axarr[0].set_ylabel('$T_\mathrm{air,2,2}$', size=FONT_SIZE)
axarr[0].yaxis.set_major_locator(MaxNLocator(5))
axarr[0].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[0].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[0].grid(which='major', alpha=0.5)
axarr[0].grid(which='minor', alpha=0.2)

data = conv_dryer
x = range(0, len(data))

axarr[1].scatter(x, data)
axarr[1].set_ylabel('$T_\mathrm{dryer,2,2}$', size=FONT_SIZE)
axarr[1].yaxis.set_major_locator(MaxNLocator(5))
axarr[1].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[1].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[1].grid(which='major', alpha=0.5)
axarr[1].grid(which='minor', alpha=0.2)

data = conv_lambda
x = range(0, len(data))

axarr[2].scatter(x, data)
axarr[2].set_xlabel('Iterationsschritte', size=FONT_SIZE)
axarr[2].xaxis.set_major_locator(MaxNLocator(integer=True))
axarr[2].set_ylabel('$\lambda$', size=FONT_SIZE)
axarr[2].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[2].yaxis.set_major_locator(MaxNLocator(5))
axarr[2].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[2].grid(which='major', alpha=0.5)
axarr[2].grid(which='minor', alpha=0.2)
Run Code Online (Sandbox Code Playgroud)

python matplotlib scipy python-3.x

43
推荐指数
5
解决办法
9万
查看次数

如何使用Matplotlib对齐两个y轴刻度的网格线?

我正在绘制y轴上具有不同单位的两个数据集.有没有办法让刻度线和网格线在两个y轴上对齐?

第一张图片显示了我得到的内容,第二张图片显示了我想要获得的内容.

这是我用来绘制的代码:

import seaborn as sns
import numpy as np
import pandas as pd

np.random.seed(0)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(pd.Series(np.random.uniform(0, 1, size=10)))
ax2 = ax1.twinx()
ax2.plot(pd.Series(np.random.uniform(10, 20, size=10)), color='r')
Run Code Online (Sandbox Code Playgroud)

不需要的行为示例

想要行为的例子

python plot matplotlib seaborn

35
推荐指数
4
解决办法
2万
查看次数

matplotlib对齐twinx刻度线

是否可以制作具有两个独立y轴的绘图,使刻度线对齐?

以下是一半解决方案的示例.我使用了y轴加倍twinx,但是刻度标记没有对齐,并且网格线在图上形成了一个尴尬的图案.有没有办法让刻度线共享相同的位置,但对应不同的y值?在下面的例子中,我希望左边的5的刻度线与右边的6的刻度线标记处于同一垂直位置.

import numpy as np

a = np.random.normal(10, 3, size=20)
b = np.random.normal(20, 5, size=40)

fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.hist(a)
ax2.hist(b)
Run Code Online (Sandbox Code Playgroud)

直方图

本练习的首要目的是使两条轴的网格线重叠.

python matplotlib

16
推荐指数
2
解决办法
6552
查看次数

标签 统计

matplotlib ×3

python ×3

plot ×1

python-3.x ×1

scipy ×1

seaborn ×1