相关疑难解决方法(0)

Matplotlib:更改轴的颜色

有没有办法在matplotlib中更改轴的颜色(而不是刻度线)?我一直在浏览Axes,Axis和Artist的文档,但没有运气; matplotlib画廊也没有提示.任何的想法?

colors matplotlib

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

优雅地改变matplotlib中的绘图框的颜色

这是这篇文章的一个后续问题,其中讨论了轴,刻度和标签的着色.我希望为此开一个新的,扩展的问题是可以的.

add_subplot使用轴[ax1,ax2] 围绕双图(通孔)更改完整框架(刻度线和轴)的颜色会产生大量代码.此代码段会更改上图的框架颜色:

ax1.spines['bottom'].set_color('green')
ax1.spines['top'].set_color('green')
ax1.spines['left'].set_color('green')
ax1.spines['right'].set_color('green')
for t in ax1.xaxis.get_ticklines(): t.set_color('green')
for t in ax1.yaxis.get_ticklines(): t.set_color('green')
for t in ax2.xaxis.get_ticklines(): t.set_color('green')
for t in ax2.yaxis.get_ticklines(): t.set_color('green')
Run Code Online (Sandbox Code Playgroud)

因此,为了改变两个图的帧颜色,每个两个y轴,我需要16(!)行代码...这是它的样子:

在此输入图像描述

到目前为止我挖出的其他方法:

是否有一种优雅的方式来凝聚上面的块,更多的是"pythonic"?

我在ubuntu下使用python 2.6.5和matplotlib 0.99.1.1.

python colors matplotlib

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

设置matplotlib 3D绘图的刻度颜色

如果我有3D matplotlib图(Axes3D对象),如何更改刻度线的颜色?我想出了如何更改轴线,刻度标签和轴标签的颜色.显而易见的解决方案,使用ax.tick_params(axis='x', colors='red'),只更改刻度标签而不是刻度标记本身.

以下是尝试将所有轴更改为红色并获取除刻度标记之外的所有轴的代码:

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import pyplot as plt

fig = plt.figure()
ax = Axes3D(fig)

ax.scatter((0, 0, 1), (0, 1, 0), (1, 0, 0))
ax.w_xaxis.line.set_color('red')
ax.w_yaxis.line.set_color('red')
ax.w_zaxis.line.set_color('red')
ax.w_zaxis.line.set_color('red')
ax.xaxis.label.set_color('red')
ax.yaxis.label.set_color('red')
ax.zaxis.label.set_color('red')
ax.tick_params(axis='x', colors='red')  # only affects
ax.tick_params(axis='y', colors='red')  # tick labels
ax.tick_params(axis='z', colors='red')  # not tick marks

fig.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python matplotlib mplot3d

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

在对数刻度轴上设置 matplotlib 刻度的颜色

按照更改 matplotlib 中绘图的轴、刻度和标签的颜色的建议,我设法使用以下方法设置了图形的脊椎、标签、数字和刻度的颜色:

ax.spines['left'].set_color('#FF9000')
ax.yaxis.label.set_color('#FF9000')
ax.tick_params(axis='y', colors='#FF9000')
Run Code Online (Sandbox Code Playgroud)

但是,当我将图形的轴设置为对数刻度时,刻度再次恢复为黑色。

例如:

ax.set_yscale('log')
ax.spines['left'].set_color('#FF9000')
ax.yaxis.label.set_color('#FF9000')
ax.tick_params(axis='y', colors='#FF9000') <-- now only half works
Run Code Online (Sandbox Code Playgroud)

这将绘制我想要的颜色的数字(所以我知道该命令仍然可以执行某些操作)但不会影响刻度。

有没有办法设置对数刻度刻度的颜色?

python matplotlib

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

在 matplotlib 中向条形图和折线图添加标签值

我为以下数据框创建了一个使用两个不同 y 轴的条形图和一个折线图在此处输入图片说明.

import pandas as pd 
 df = pd.DataFrame({
    'DXC':['T1', 'H1', 'HP', 'T1_or_H1_or_HP'], 
    'Count': [2485, 5595, 3091, 9933],
    'percent':[1.06, 2.39, 1.31, 4.23]
 }) 
Run Code Online (Sandbox Code Playgroud)

使用以下代码,我还可以在条形图中每个条形旁边显示值。但是,到目前为止,我还没有成功尝试显示线图的标签(百分比)值。

fig=plt.figure()

#AX: bar chart 

ax=df["Count"].plot(kind="bar", color="orange")

ax.set_ylabel("Counts")

ax.set_xlabel("")

ax.set_ylim(0,20000)

for tick in ax.get_xticklabels():

  tick.set_rotation(0)

#AX2: Create secondary y-axis with same x-axis as above for plotting percent values
ax2=ax.twinx()

ax2.plot(ax.get_xticks(),df["percent"], color="red", linewidth=4, marker = "o")

ax2.grid(False)

ax2.set_ylabel("Percent", color = "red")

ax2.set_ylim(0,4.5)

ax2.tick_params(labelcolor="red", axis='y')
Run Code Online (Sandbox Code Playgroud)

# Function to add value labels to bar chart

def add_value_labels(ax, spacing=5): …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

0
推荐指数
1
解决办法
1053
查看次数

标签 统计

matplotlib ×5

python ×4

colors ×2

mplot3d ×1