在定义刻度标签时,我获得了异常高的精度。例如:
import pylab as pl
fig = pl.figure(figsize=(3.25, 2.5))
ax0 = fig.add_subplot(111)
ax0.set_ylim([0, 0.5])
ax0.set_yticks(np.arange(0, 0.51, 0.1), minor=False)
ax0.set_yticklabels(np.arange(0, 0.51, 0.1), fontsize=8)
ax0.set_xlim([0, 0.5])
ax0.set_xticks(np.arange(0, 0.51, 0.1), minor=False)
ax0.set_xticklabels(np.arange(0, 0.51, 0.1), fontsize=8)
fig.show()
Run Code Online (Sandbox Code Playgroud)
下面的输出图在 0.3 标记(x 轴和 y 轴)上有错误的刻度标签。我尝试过使用 np.linspace,这会产生同样的问题。
我理解浮点精度的问题,但我希望标签能够更快地四舍五入。如何更正此问题以仅显示第一个小数?
在 MatPlotLib 中,我想绘制一个具有线性 x 轴和对数 y 轴的图形。对于 x 轴,标签应为 4 的倍数,小刻度应为 1 的倍数。我已经能够使用该类来做到这一点MultipleLocator。
然而,我很难对对数 y 轴做类似的事情。我希望在 0.1、0.2、0.3 等处有标签,在 0.11、0.12、0.13 等处有小刻度。我已经尝试在类中执行此操作LogLocator,但我不确定正确的参数是什么。
这是我到目前为止所尝试过的:
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
y = [0.32, 0.30, 0.28, 0.26, 0.24, 0.22, 0.20, 0.18, 0.16, 0.14, 0.12, 0.10]
fig = plt.figure()
ax1 = fig.add_subplot(111)
x_major = MultipleLocator(4)
x_minor = MultipleLocator(1)
ax1.xaxis.set_major_locator(x_major)
ax1.xaxis.set_minor_locator(x_minor)
ax1.set_yscale("log")
y_major = LogLocator(base=10)
y_minor = LogLocator(base=10)
ax1.yaxis.set_major_locator(y_major)
ax1.yaxis.set_minor_locator(y_minor)
ax1.plot(x, y)
plt.show()
Run Code Online (Sandbox Code Playgroud)
这显示了以下情节: …
我目前正在尝试绘制一个带有很多刻度的图形。它对每个值都有从 0 到 50 的刻度,导致打包的刻度标签合并,使绘图变得非常混乱。我使用了刻度线
fig, ax = plt.subplots()
ax.set_xticks(np.arange(0,50))
ax.set_yticks(np.arange(0,50))
Run Code Online (Sandbox Code Playgroud)
并使用隐藏刻度标签
ax.set_xticklabels([])
ax.set_yticklabels([])
Run Code Online (Sandbox Code Playgroud)
然而,问题是这隐藏了所有刻度标签,而我希望保留一些标签,以便我可以使用标签轻松跟踪。
我试过做
ax.set_xticklabels(np.arange(0,50,5))
Run Code Online (Sandbox Code Playgroud)
但这只会导致前 10 个刻度使用不适当的标签进行标记(范围(0,50),间隔为 5)
我希望找到一种方法来显示间隔为 5(或任何特定间隔)的刻度“标签”,同时保留所有实际刻度(以便我可以将它们用于网格)。
碰巧,有没有办法旋转下图中的 xticks(只是为了使其更具可读性)?通常
sns.xticks()在新的 seaborn.objects 开发中不起作用(这太棒了!)
tcap.\
assign(date_time2 = tcap['date_time'].dt.date).\
groupby(['date_time2', 'person']).\
agg(counts = ('person', 'count')).\
reset_index().\
pipe(so.Plot, x = "date_time2", y = "counts", color = "person").\
add(so.Line(marker="o", edgecolor="w")).\
label(x = "Date", y = "# of messages",
color = str.capitalize,
title = "Plot 2: Volume of messages by person, by day").\
scale(color=so.Nominal(order=["lorne_a_20014", "kayla_princess94"])).\
show()
Run Code Online (Sandbox Code Playgroud)
此外,我的 x 轴是分类的,并且此警告: 使用分类单位绘制可解析为浮点数或日期的字符串列表。如果这些字符串应绘制为数字,请在绘制之前转换为适当的数据类型。出现。我尝试使用:
import warnings
warnings.filterwarnings("ignore",category=UserWarning)
Run Code Online (Sandbox Code Playgroud) 我想在 y 轴上添加小刻度。我尝试了几种方法,但似乎都不起作用。小蜱虫不会出现。这是我的代码。
sns.set_style('whitegrid')
dd.plot(x='Date', y='Min', lw = 4, figsize=(50,30), color = 'red')
plt.grid(color = 'grey')
dd['P05'].plot(lw = 2)
dd['P10'].plot(lw = 2)
dd['P25'].plot(lw = 2)
dd['P50'].plot(lw = 2)
dd['P75'].plot(lw = 2)
dd['P90'].plot(lw = 2)
dd['P95'].plot(lw = 2)
dd['Max'].plot(lw = 4, color = 'black')
plt.xticks(np.arange(0,366, step=31), list(monthDict.values()),\
fontsize = 35, fontname = 'Consolas')
plt.yticks(fontsize = 35)
plt.ylabel('Daily Average Stage (ft NGVD29)', fontsize = 35, \
labelpad = 25,fontname = 'Consolas', color = 'black')
plt.xlabel('') #remove xlabel
plt.legend(prop={'family':'Consolas', 'size':35})
# plt.legend(['5th Pecrentile', …Run Code Online (Sandbox Code Playgroud) 这是我在这里问的一个问题的后续:代码如下:
from pandas_datareader import data as web
import matplotlib.pyplot as plt
import matplotlib.dates as md
fig, (ax1, ax2) = plt.subplots(2, 1)
df = web.DataReader('F', 'yahoo')
df2 = web.DataReader('Fb', 'yahoo')
ax = df.plot(figsize=(35,15), ax=ax1)
df2.plot(y = 'Close', figsize=(35,15), ax=ax2)
plt.xticks(fontsize = 25)
for ax in (ax1, ax2):
ax.xaxis.set_major_locator(md.MonthLocator(bymonth = range(1, 13, 6)))
ax.xaxis.set_major_formatter(md.DateFormatter('%b\n%Y'))
ax.xaxis.set_minor_locator(md.MonthLocator())
plt.setp(ax.xaxis.get_majorticklabels(), rotation = 0 )
plt.show()
Run Code Online (Sandbox Code Playgroud)
我怎样才能增加两个子图中的两个 xticks 的大小,因为您可以看到仅底部一个的大小增加了。
[1]: /sf/ask/4365127651/
Run Code Online (Sandbox Code Playgroud) 如何绘制次要网格为 1、主要网格为 10、xticklabels 增量为20 个单位的图表?
这是我的示例代码和输出,xticklabels 每 10 个单位递增:
plt.figure(figsize=(10, 10))
ax = plt.gca()
major_ticks = np.arange(0, 60, 10)
minor_ticks = np.arange(0, 60, 1)
ax.set_xticks(major_ticks)
ax.set_xticks(minor_ticks, minor=True)
ax.set_yticks(major_ticks)
ax.set_yticks(minor_ticks, minor=True)
ax.grid(which='major')
ax.grid(which='minor', alpha=0.5)
ax.set_aspect('equal')
Run Code Online (Sandbox Code Playgroud)
但后来我想以 20 而不是 10 的增量显示 xticklabels 和 yticklabels,如下所示:
知道如何实现这一点吗?谢谢
由于某种原因,Matplotlib 强制每个箱线图打勾,但我似乎无法将它们删除。我当前绘图的代码如下所示:
label = ["" for i in range(160)]
no_labels = int(np.floor(len(label)/20))
for i in range(no_labels):
label[i*20] = str(i*no_samples/no_labels)
# Weird behaviour for the last label so adding it manually
label[-1] = no_samples
fig = plt.figure(figsize=(10,5))
ax = fig.add_axes([0,0,1,1])
ax.set_xlabel("Samples", labelpad=10)
ax.set_ylabel("Error (MSE)", labelpad=10)
ax.set_ylim(0, 0.11)
ax.boxplot(data, flierprops=flyprops, showcaps=False,
boxprops=colorprops, whiskerprops={'color' : 'tab:blue'},
labels=label, patch_artist=True)
Run Code Online (Sandbox Code Playgroud)
我尝试了 MPL 中提供的多种操作轴刻度的方法。
1) 尝试让 MPL 完成工作:
ax.xaxis.set_major_locator(MultipleLocator(20))
2)尝试手动设置刻度:ax.set_xticks([list_of_ticks])
3)尝试了解决方法
ax.xaxis.set_minor_locator(MultipleLocator(20))
# Removing major ticks, setting minor ticks
ax.xaxis.set_tick_params(which='major', size=0, width=2, direction='in')
ax.yaxis.set_tick_params(which='major', …Run Code Online (Sandbox Code Playgroud) 我有这样的代码,我想在 X 轴上添加刻度,这样我就可以更好地看到超过 150 的值对应的内容。我的 X 值的范围是从 178 到 17639。
bins = np.linspace(df.days_with_cr_line.min(), df.days_with_cr_line.max(), 32)
g = sns.FacetGrid(df, col="loan_status", hue="loan_status", palette=['#8856a7', '#f03b20'], col_wrap=2)
g.map(plt.hist, 'days_with_cr_line', bins=bins, ec="k")
Run Code Online (Sandbox Code Playgroud)
我努力了
g.set_xticks(np.arange(0,18000,500), minor=True)
AttributeError: 'FacetGrid' object has no attribute 'set_xticks'
Run Code Online (Sandbox Code Playgroud)
和
for axes in g.axes.flat:
_ = axes.set_xticks(axes.get_xticks(range(0,18000)))
Run Code Online (Sandbox Code Playgroud)
这将删除刻度标签而不添加任何刻度。
我该如何让它显示从 0 到 9 的所有 x 刻度?
bin diff
1 4 -0.032748
3 9 0.106409
13 7 0.057214
17 3 0.157840
19 0 -0.086567
... ... ...
1941 0 0.014386
1945 4 0.049601
1947 9 0.059406
1957 1 0.045282
1959 6 -0.033853
Run Code Online (Sandbox Code Playgroud)
(
so.Plot(x='bin', y='diff', data=diff_df)
.theme({**axes_style("whitegrid"), "grid.linestyle": ":"})
.add(so.Dots())
.add(so.Range(color='orange'), so.Est())
.add(so.Dot(color='orange'), so.Agg())
.add(so.Line(color='orange'), so.Agg())
.label(
x="Image Similarity Bin", y="Difference",
color=str.capitalize,
)
)
Run Code Online (Sandbox Code Playgroud)
我尝试xticks在 .label 中设置,但它没有执行任何操作。
我正在尝试旋转每个子图的 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)
我很茫然。为什么它不起作用?
我有一个包含四个子图的图形。我想将xticks所有suplots 旋转45 度。
对于这个问题,我相信这是可以做到的plt.setp()。
# Create subplots
fig, ax = plt.subplots(2, 2, figsize=(10,5), sharex=True, sharey=True)
# Try to rotate the xticks of all axes
plt.setp(plt.xticks()[1], rotation=45) # Close attempt
# Show
plt.show()
Run Code Online (Sandbox Code Playgroud)
python ×12
xticks ×12
matplotlib ×9
seaborn ×4
yticks ×3
axis-labels ×2
boxplot ×1
facet-grid ×1
gridlines ×1
pandas ×1
python-3.x ×1
rotation ×1
subplot ×1
x-axis ×1