相关疑难解决方法(0)

matplotlib中的日期刻度和旋转

我有一个问题试图让我的日期刻度在matplotlib中旋转.下面是一个小样本程序.如果我尝试在末尾旋转刻度线,则刻度线不会旋转.如果我尝试旋转注释'崩溃'下显示的刻度,则matplot lib崩溃.

只有当x值是日期时才会发生这种情况.如果我用调用中dates的变量替换变量,则调用在内部工作正常.tavail_plotxticks(rotation=70)avail_plot

有任何想法吗?

import numpy as np
import matplotlib.pyplot as plt
import datetime as dt

def avail_plot(ax, x, y, label, lcolor):
    ax.plot(x,y,'b')
    ax.set_ylabel(label, rotation='horizontal', color=lcolor)
    ax.get_yaxis().set_ticks([])

    #crashes
    #plt.xticks(rotation=70)

    ax2 = ax.twinx()
    ax2.plot(x, [1 for a in y], 'b')
    ax2.get_yaxis().set_ticks([])
    ax2.set_ylabel('testing')

f, axs = plt.subplots(2, sharex=True, sharey=True)
t = np.arange(0.01, 5, 1)
s1 = np.exp(t)
start = dt.datetime.now()
dates=[]
for val in t:
    next_val = start + dt.timedelta(0,val)
    dates.append(next_val)
    start = next_val

avail_plot(axs[0], dates, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

141
推荐指数
6
解决办法
20万
查看次数

将旋转的xticklabels与它们各自的xticks对齐

检查下图的x轴.如何将标签向左移动一点,使它们与各自的刻度对齐?

我正在使用以下方式旋转标签:

ax.set_xticks(xlabels_positions)
ax.set_xticklabels(xlabels, rotation=45)
Run Code Online (Sandbox Code Playgroud)

但是,正如您所看到的,旋转以文本标签的中间为中心.这使它看起来像是向右移动了.

我试过用这个代替:

ax.set_xticklabels(xlabels, rotation=45, rotation_mode="anchor")
Run Code Online (Sandbox Code Playgroud)

......但它没有按照我的意愿行事.并且"anchor"似乎是rotation_mode参数允许的唯一值.

例

matplotlib

122
推荐指数
6
解决办法
9万
查看次数

旋转子图中的刻度标签(Pyplot,Matplotlib,gridspec)

我试图将子图(使用GridSpec创建)的x标签旋转45度。我尝试使用axa.set_xticks()axa.set_xticklabels,但似乎无法正常工作。谷歌也没有提供帮助,因为大多数与标签有关的问题都是关于正常绘图而不是子图。

参见下面的代码:

width = 20                                    # Width of the figure in centimeters
height = 15                                   # Height of the figure in centimeters
w = width * 0.393701                            # Conversion to inches
h = height * 0.393701                           # Conversion to inches

f1 = plt.figure(figsize=[w,h])
gs = gridspec.GridSpec(1, 7, width_ratios = [1.5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0])

axa = plt.subplot(gs[0])
axa.plot(dts, z,'k', alpha=0.75, lw=0.25)
#axa.set_title('...')
axa.set_ylabel('TVDSS ' + '$[m]$', fontsize = '10' )
axa.set_xlabel('slowness 'r'$[\mu s/m]$', fontsize …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

在 Matplotlib 寄生虫图中旋转 x 轴标签

在 Thomas 非常有帮助地解决了我在这个问题中制作两个寄生虫子图的问题之后,我现在尝试旋转子图上的 x 轴标签。

不幸的是,我对这里示例代码的修改似乎对 x 轴标签没有影响:

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA

host = host_subplot(111, axes_class=AA.Axes)
plt.subplots_adjust(right=0.75)

par1 = host.twinx()
par2 = host.twinx()

offset = 60
new_fixed_axis = par2.get_grid_helper().new_fixed_axis
par2.axis["right"] = new_fixed_axis(loc="right",
                                    axes=par2,
                                    offset=(offset, 0))

par1.axis["right"].toggle(all=True)
par2.axis["right"].toggle(all=True)

host.set_xlim(0, 2)
host.set_ylim(0, 2)

host.set_xlabel("Distance")
host.set_ylabel("Density")
par1.set_ylabel("Temperature")
par2.set_ylabel("Velocity")

p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
p2, = par1.plot([0, 1, 2], [0, 3, 2], label="Temperature")
p3, = par2.plot([0, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

如何提高标签在Seaborn轴上的间距

我下面的代码生成了一张图,其中x轴上的标签被压在一起并且难以阅读。我怎样才能每隔两年而不是全部显示?

import seaborn as sns
import pandas as pd

years = list(range(1996,2017))
count = [2554.9425,2246.3233,1343.7322,973.9502,706.9818,702.0039,725.9288,
         598.7818,579.0219,485.8281,474.9578,358.1385,311.4344,226.3332,
        161.4288,132.7368,78.1659,39.8121,23.1321,0.2232,0.0015]
df = pd.DataFrame({'year':years, 'count':count})

dot_size = 0.7
ax = sns.pointplot(x="year",y="count", scale = dot_size, data=df)
ax.set(xlabel='Year', ylabel='Amount')
ax.set(ylim=(0, 3000))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

python seaborn

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

使用matplotlib直方图时如何旋转轴标签?

我有一个看起来像这样的图,我试图使 x 轴标签更具可读性:

在此处输入图片说明

这是我尝试过的,我得到的错误是:

在此处输入图片说明

python matplotlib

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

用熊猫绘制多个重叠的直方图

我有两个不同的数据框,每个数据框有 19 个变量,我正在用每个变量的直方图绘制一个多重图,如下所示:

fig, ax = plt.subplots(figsize=(19,10), dpi=50)
dataframe1.hist(ax=ax, layout=(3,7), alpha=0.5)

fig, ax = plt.subplots(figsize=(19,10), dpi=50)
dataframe2.hist(ax=ax, layout=(3,7), alpha=0.5)
Run Code Online (Sandbox Code Playgroud)

这会产生两个内部有 19 个直方图的图像。我想尝试的是在同一个子图中仅绘制一个具有共享直方图的图像。

我试过这个:

fig, ax = plt.subplots(figsize=(19,10), dpi=50)
dataframe1.hist(ax=ax, layout=(3,7), alpha=0.5, label='x')
dataframe2.hist(ax=ax, layout=(3,7), alpha=0.5, label='y', color='red')
Run Code Online (Sandbox Code Playgroud)

但它只画了最后一张。这是一个类似的例子:使用 matplotlib同时绘制两个直方图,但我如何将它应用于我的 19 个子图?

任何想法都会受到欢迎,提前致谢!

在此处输入图片说明

PS:我目前正在使用带有%matplotlib notebook选项的Jupyter Notebooks

python matplotlib pandas

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

旋转轴标签

我有一个看起来像这样的图(这是著名的 Wine 数据集):

在此输入图像描述

正如您所看到的,x 轴标签重叠,因此我需要旋转。

注意!我对旋转 x 刻度不感兴趣(如此处所述,但对标签文本(即alcoholmalic_acid等)感兴趣。

创建绘图的逻辑如下:我使用 创建一个网格axd = fig.subplot_mosaic(...),然后为底部绘图设置标签axd[...].set_xlabel("something")set_xlabel如果能接受一个参数那就太好了rotation,但不幸的是事实并非如此。

python matplotlib subplot axis-labels seaborn

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

如何旋转子图中的 x 轴刻度标签?

我正在尝试旋转每个子图的 x 轴标签。这是我的代码:

fig.set_figheight(10)
fig.set_figwidth(20)
ax.set_xticklabels(dr_2012['State/UT'], rotation = 90)

ax[0, 0].bar(dr_2012['State/UT'], dr_2012['Primary Total'])
ax[0, 0].set_title('Dropout Ratios 2012-2013 (Primary)')

ax[0, 1].bar(dr_2012['State/UT'], dr_2012['Upper Primary Total'])
ax[0, 1].set_title('Dropout Ratios 2012-2013 (Upper Primary)')

ax[1, 0].bar(dr_2012['State/UT'], dr_2012['Secondary Total'])
ax[1, 0].set_title('Dropout Ratios 2012-2013 (Secondary)')

ax[1, 1].bar(dr_2012['State/UT'], dr_2012['HS Total'])
ax[1, 1].set_title('Dropout Ratios 2012-2013 (HS)')
Run Code Online (Sandbox Code Playgroud)

次要情节

平常的事情似乎都不适合我。我尝试过 ax.set_xticklabels 和 ax.tick_params。我还尝试使用 ax.get_xticklabels 循环遍历刻度,但即使这样也不起作用。它总是给我这个错误 -

AttributeError: 'numpy.ndarray' object has no attribute 'set_xticklabels'/'get_xticklabels'/'tick_params'
Run Code Online (Sandbox Code Playgroud)

我很茫然。为什么它不起作用?

python matplotlib subplot axis-labels xticks

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

标签 统计

matplotlib ×8

python ×8

axis-labels ×2

seaborn ×2

subplot ×2

pandas ×1

xticks ×1