我正在用两条线构建一个线图,一条用于高温,另一条用于低温。x 轴基于日期时间格式(2014-01-01 等)一整年的天数。但是,我更改了几个月(一月、二月、三月等)的标签,而不是数据。问题是第一个标签“Jan”在原点。我想要的是将所有标签向右移动,使它们在刻度之间居中。
fig, ax = plt.subplots()
plt.plot(x, y1)
plt.plot(x, y2)
# Change x-axis from %y-%m-%d format to %m:
monthsFmt = mdates.DateFormatter('%m')
plt.gca().xaxis.set_major_formatter(monthsFmt)
# Replace numeric x-axis labels (1,2,3, ..., 12) for abbreviations of months ('Jan', 'Feb', 'Mar', etc.):
labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
ax.set_xticklabels(labels)
# CODE GOES HERE TO CENTER X-AXIS LABELS...
# Render plot:
plt.show()
Run Code Online (Sandbox Code Playgroud)
这是我正在寻找的结果:
我制作了一个图形,其中包含分别基于随机正态分布、伽玛分布、指数分布和均匀分布的直方图的四个子图。我使用 matplotlib 和 Jupyter Notebook 制作的。它是通过 ipywidgets lib 生成的交互式图形。特别是,有四个滑动条控制每个直方图上的样本大小并相应地更新它们。然而,当更新直方图时,它会令人烦恼地闪烁。有什么办法可以避免这种情况吗?谢谢。
现在要在 jupyter 笔记本上运行的代码:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib notebook
from ipywidgets import *
n = 1000
x1 = np.random.normal(-2.5, 1, n)
x2 = np.random.gamma(2, 1.5, n)
x3 = np.random.exponential(2, n)+7
x4 = np.random.uniform(14,20, n)
x = [x1, x2, x3, x4]
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, figsize=(10,7))
axs = [ax1,ax2,ax3,ax4]
titles = ['x1\nNormal', 'x2\nGamma', 'x3\nExponential', 'x4\nUniform']
subplots_axes = [[-7,2,0,250], [0,4.5,0,250], [7,25,0,250], …Run Code Online (Sandbox Code Playgroud) 以下是df的数据,其中包含从1947q1到2016q2的美国季度GDP(以2009年美元计,以十亿美元计):
df = pd.DataFrame(data = [1934.5, 1932.3, 1930.3, 1960.7, 1989.5, 2021.9, 2033.2, 2035.3, 2007.5, 2000.8, 2022.8, 2004.7, 2084.6, 2147.6, 2230.4, 2273.4, 2304.5, 2344.5, 2392.8, 2398.1, 2423.5, 2428.5, 2446.1, 2526.4, 2573.4, 2593.5, 2578.9, 2539.8, 2528.0, 2530.7, 2559.4, 2609.3, 2683.8, 2727.5, 2764.1, 2780.8, 2770.0, 2792.9, 2790.6, 2836.2, 2854.5, 2848.2, 2875.9, 2846.4, 2772.7, 2790.9, 2855.5, 2922.3, 2976.6, 3049.0, 3043.1, 3055.1, 3123.2, 3111.3, 3119.1, 3081.3, 3102.3, 3159.9, 3212.6, 3277.7, 3336.8, 3372.7, 3404.8, 3418.0, 3456.1, 3501.1, 3569.5, 3595.0, 3672.7, 3716.4, 3766.9, 3780.2, 3873.5, 3926.4, 4006.2, …Run Code Online (Sandbox Code Playgroud) 我有这个 df:
data = np.array([[np.nan, 0], [2, 0], [np.nan, 1]])
df = pd.DataFrame(data=data, columns = ['a', 'b'])
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
a b
--------
0 NaN 0.0
1 2.0 0.0
2 NaN 1.0
Run Code Online (Sandbox Code Playgroud)
我的目标是创建第三列“c”,当“a”列等于 NaN 且“b”列等于 0 时,该列的值为 1。否则“c”将为 0。简单的 SQL case 语句是:
(CASE WHEN a IS NULL AND b = 0 THEN 1 ELSE 0 END) AS C
Run Code Online (Sandbox Code Playgroud)
所述期望的输出是这样的:
a b c
-----------
0 NaN 0.0 1
1 2.0 0.0 0
2 NaN 1.0 0
Run Code Online (Sandbox Code Playgroud)
我的(错误)尝试:
df['c'] = …Run Code Online (Sandbox Code Playgroud) 我有一个数据框,有许多术语(不同大小的ngrams,最多五格)和它们各自的频率:
df = data.frame(term = c("a", "a a", "a a card", "a a card base", "a a card base ne",
"a a divorce", "a a divorce lawyer", "be", "be the", "be the one"),
freq = c(131, 13, 3, 2, 1, 1, 1, 72, 17, 5))
Run Code Online (Sandbox Code Playgroud)
哪个给我们:
term freq
1 a 131
2 a a 13
3 a a card 3
4 a a card base 2
5 a a card base ne 1
6 a a divorce 1
7 a …Run Code Online (Sandbox Code Playgroud) 下面这段代码...
data = np.array([['','state','zip_code','collection_status'],
['42394','CA','92637-2854', 'NaN'],
['58955','IL','60654', 'NaN'],
['108365','MI','48021-1319', 'NaN'],
['109116','MI','48228', 'NaN'],
['110833','IL','60008-4227', 'NaN']])
print(pd.DataFrame(data=data[1:,1:],
index=data[1:,0],
columns=data[0,1:]))
Run Code Online (Sandbox Code Playgroud)
...给出以下数据框:
state zip_code collection_status
42394 CA 92637-2854 NaN
58955 IL 60654 NaN
108365 MI 48021-1319 NaN
109116 MI 48228 NaN
110833 IL 60008-4227 NaN
Run Code Online (Sandbox Code Playgroud)
目标是将“zip_code”列同质化为 5 位格式——即,当特定数据点有 9 位而不是 5 位时,我想从 zip_code 中删除最后四位数字。顺便说一句,zip_code 的类型是“对象”类型.
任何的想法?
我正在制作条形图,我想将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)
这是条形图:
任何线索?
我一直在关注Stack上的类似问题,但其中任何一个似乎对我都有帮助.我有下表叫"喜欢":
ID1 ID2
1689 1709
1709 1689
1782 1709
1911 1247
1247 1468
1641 1468
1316 1304
1501 1934
1934 1501
1025 1101
Run Code Online (Sandbox Code Playgroud)
我想获得两列ID1和ID2之间的唯一对.那是:
ID1 ID2
1689 1709
1501 1934
Run Code Online (Sandbox Code Playgroud)
任何的想法?谢谢.
我一直在阅读类似这样的帖子,但其中任何一个似乎都适合我的情况。我正在尝试使用 Python 中的多重处理并行化以下玩具示例,以在 for 循环内填充 Numpy 数组:
import numpy as np
from multiprocessing import Pool
import time
def func1(x, y=1):
return x**2 + y
def func2(n, parallel=False):
my_array = np.zeros((n))
# Parallelized version:
if parallel:
pool = Pool(processes=6)
for idx, val in enumerate(range(1, n+1)):
result = pool.apply_async(func1, [val])
my_array[idx] = result.get()
pool.close()
# Not parallelized version:
else:
for i in range(1, n+1):
my_array[i-1] = func1(i)
return my_array
def main():
start = time.time()
my_array = func2(60000)
end = time.time() …Run Code Online (Sandbox Code Playgroud) python parallel-processing numpy python-3.x python-multiprocessing
我有五个名为organoleptic的列.1.感官.2.,感官.等等在称为"df"的数据框中.我想将它们重命名为organoleptic1,organoleptic2,organoleptic3等.也就是说,我想删除数字周围的两个点.我使用名称功能做到了:
names(df)[names(df) == "organoleptic.1."] <- "organoleptic1"
names(df)[names(df) == "organoleptic.2."] <- "organoleptic2"
names(df)[names(df) == "organoleptic.3."] <- "organoleptic3"
names(df)[names(df) == "organoleptic.4."] <- "organoleptic4"
names(df)[names(df) == "organoleptic.5."] <- "organoleptic5"
Run Code Online (Sandbox Code Playgroud)
但是,我想只需键入一行代码即可.是否可以使用正则表达式或任何其他技巧来做到这一点?很多thx!
python ×6
matplotlib ×3
pandas ×3
python-3.x ×2
r ×2
dataframe ×1
ipywidgets ×1
numpy ×1
split ×1
sql ×1
sqlite ×1