相关疑难解决方法(0)

在python matplotlib中旋转轴文本

我无法弄清楚如何旋转X轴上的文本.它是一个时间戳,随着样本数量的增加,它们越来越近,直到它们重叠.我想将文本旋转90度,以便样本靠近在一起,它们不重叠.

下面是我的,它工作得很好,除了我无法弄清楚如何旋转X轴文本.

import sys

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import datetime

font = {'family' : 'normal',
        'weight' : 'bold',
        'size'   : 8}

matplotlib.rc('font', **font)

values = open('stats.csv', 'r').readlines()

time = [datetime.datetime.fromtimestamp(float(i.split(',')[0].strip())) for i in values[1:]]
delay = [float(i.split(',')[1].strip()) for i in values[1:]]

plt.plot(time, delay)
plt.grid(b='on')

plt.savefig('test.png')
Run Code Online (Sandbox Code Playgroud)

python matplotlib

261
推荐指数
11
解决办法
35万
查看次数

为什么set_xticks不设置刻度标签?

import pylab as plt

x = range(1, 7)
y = (220, 300, 300, 290, 320, 315)

def test(axes):
    axes.bar(x,y)
    axes.set_xticks(x, [i+100 for i in x])

a = plt.subplot(1,2,1)
test(a)
b = plt.subplot(1,2,2)
test(b)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我期待xlabs为101, 102 ... 然而,如果我切换到使用plt.xticks(x, [i+100 for i in x])并明确重写函数,它的工作原理.

python matplotlib

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

如何在matplotlib中移动tick的标签?

我想沿着x轴水平移动一些刻度标签,而不移动相应的刻度.

更具体地说,当旋转标签时plt.setp,标签文本的中心保持与刻度线对齐.我想将这些标签向右移动,以便标签的近端对齐,如下图所示.

在此输入图像描述

我知道这篇文章这一个,但答案很有意思组装机,而不是严格的问题的答案.

我的代码:

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

# my fake data
dates = np.array([datetime.datetime(2000,1,1) + datetime.timedelta(days=i) for i in range(365*5)])
data = np.sin(np.arange(365*5)/365.0*2*np.pi - 0.25*np.pi) + np.random.rand(365*5) /3

# creates fig with 2 subplots
fig = plt.figure(figsize=(10.0, 6.0))
ax = plt.subplot2grid((2,1), (0, 0))
ax2 = plt.subplot2grid((2,1), (1, 0))
## plot dates
ax2.plot_date( dates, data )

# rotates labels 
plt.setp( ax2.xaxis.get_majorticklabels(), rotation=-45 ) 

# try to shift labels …
Run Code Online (Sandbox Code Playgroud)

python label matplotlib

32
推荐指数
4
解决办法
3万
查看次数

如何在matplotlib中旋转xticklabels以使每个xticklabel之间的间距相等?

如何在matplotlib中旋转xticklabels以使每个xticklabel之间的间距相等?

例如,使用此代码:

import matplotlib.pyplot as plt
import numpy as np

# Data + parameters
fontsize = 20
t = np.arange(0.0, 6.0, 1)
xticklabels = ['Full', 'token emb', 'char emb', 'char LSTM', 
               'token LSTM', 'feed forward','ANN']

# Plotting
fig = plt.figure(1)
ax = fig.add_subplot(111)
plt.plot(t, t)
plt.xticks(range(0, len(t) + 1))
ax.tick_params(axis='both', which='major', labelsize=fontsize)
ax.set_xticklabels(xticklabels, rotation = 45)
fig.savefig('test_rotation.png', dpi=300, format='png', bbox_inches='tight')
Run Code Online (Sandbox Code Playgroud)

我获得:

在此输入图像描述

每个xticklabel之间的间距是不相等的.例如,"Full"和"token emb"之间的间距远大于"前馈"和"ANN"之间的间距.

我在Windows 7 SP1 x64 Ultimate上使用Matplotlib 2.0.0和Python 3.5 64位.

python plot label matplotlib

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

Matplotlib Python Barplot:xtick标签的位置在彼此之间有不规则的空格

我正在尝试为许多国家做一个条​​形图,我希望名字显示在条形图下方有点旋转.问题是标签之间的空间是不规则的.

在这里,您可以看到带有国家/地区名称的条形图

这是相关的代码:

 plt.bar(i, bar_height, align='center', label=country ,color=cm.jet(1.*counter/float( len(play_list))))
 xticks_pos = scipy.arange( len( country_list)) +1
 plt.xticks(xticks_pos ,country_list, rotation=45 )
Run Code Online (Sandbox Code Playgroud)

有谁知道解决方案?

谢谢!您的帮助.

基督教

python label matplotlib bar-chart

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

如何在 matplotlib 中用沿线旋转的文本注释线

我想在中间有文本的两点之间添加注释,并旋转文本以与线对齐。当前示例未按预期旋转:

import matplotlib.pyplot as plt
import numpy as np

def ann_distance(ax,xyfrom,xyto,text=None):
    midx = (xyto[0]+xyfrom[0])/2
    midy = (xyto[1]+xyfrom[1])/2
    if text is None:
        text = str(np.sqrt( (xyfrom[0]-xyto[0])**2 + (xyfrom[1]-xyto[1])**2 ))

    ax.annotate("",xyfrom,xyto,arrowprops=dict(arrowstyle='<->'))
    p1 = ax.transData.transform_point((xyfrom[0], xyfrom[1]))
    p2 = ax.transData.transform_point((xyto[0], xyto[1]))
    rotn = np.degrees(np.arctan2(p2[1]-p1[1], p2[0]-p1[0]))
    ax.text(midx,midy,text,ha='center', va='bottom',rotation=rotn,fontsize=16)
    return

x = np.linspace(0,2*np.pi,100)

width = 800
height = 600

fig, ax = plt.subplots()
ax.plot(x,np.sin(x))
ann_distance(plt.gca(),[np.pi/2,1],[2*np.pi,0],'$sample$')
plt.show()
Run Code Online (Sandbox Code Playgroud)

电流输出: 在此输入图像描述

python matplotlib

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

Matplotlib:将x轴刻度标签向左移动一个位置

我正在制作条形图,我想将x轴刻度标签向左移动一个位置.这是情节的代码:

matplotlib.rcParams.update(matplotlib.rcParamsDefault)
plt.style.use(['seaborn-white', 'bmh'])

fig1, ax = plt.subplots()

palette = ['#2a5495', '#07a64c', '#e979ad', '#d88432', '#2a5495',
               '#b7040e', '#82c5db', '#b9c09b', '#cd065d', '#4b117f']

x = np.array(df.index)
y = np.array(df.loc[:, 2015])

width = 1.0
lefts = [x * width for x, _ in enumerate(y)]
ax.bar(left = lefts, height = y, width = width, tick_label = x, color = palette, label = ranked_univs)

ax.axis(ymin = 0, ymax = 200, xmin = -0.5, xmax = 9.5)
ax.tick_params(axis='x', which='major', labelsize=8)
ax.set_xticklabels(ax.xaxis.get_majorticklabels(), rotation=45)

fig1.tight_layout()
plt.show()
Run Code Online (Sandbox Code Playgroud)

这是条形图:

在此输入图像描述

任何线索?

python matplotlib

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

标签 统计

matplotlib ×7

python ×7

label ×3

bar-chart ×1

plot ×1