Pandas - How to repeat axvline through each graph
New to pandas/python and trying to figure out how to get a repeating line throughout all of my graphs to pin point and exact location, my code is working and I have the line showing for one therefore I would imagine I need to loop through all of them, but I simply don't know how to do it.
Code is following:
crimeDataBelfastMonthByType = crimeData[['Ward Name','Month']]
crimeDataBelfastMonthByType = pd.DataFrame({'count' : crimeDataBelfastMonthByType.groupby([ "Ward Name", "Month"] ).size()}).reset_index()
fig3 = pd.pivot_table(crimeDataBelfastMonthByType, values='count', index=['Month'], columns=['Ward Name'], fill_value=0)
fig3.index = pd.DatetimeIndex(fig2.index)
fig3.plot(figsize=(30, 30), subplots=True, layout=(-1, 6), sharex=False, sharey=False);
plt.axvline(x = ['2016-01'], color='red',linestyle='--');
Graph is the following:
python pandas matplotlib
add a comment |
New to pandas/python and trying to figure out how to get a repeating line throughout all of my graphs to pin point and exact location, my code is working and I have the line showing for one therefore I would imagine I need to loop through all of them, but I simply don't know how to do it.
Code is following:
crimeDataBelfastMonthByType = crimeData[['Ward Name','Month']]
crimeDataBelfastMonthByType = pd.DataFrame({'count' : crimeDataBelfastMonthByType.groupby([ "Ward Name", "Month"] ).size()}).reset_index()
fig3 = pd.pivot_table(crimeDataBelfastMonthByType, values='count', index=['Month'], columns=['Ward Name'], fill_value=0)
fig3.index = pd.DatetimeIndex(fig2.index)
fig3.plot(figsize=(30, 30), subplots=True, layout=(-1, 6), sharex=False, sharey=False);
plt.axvline(x = ['2016-01'], color='red',linestyle='--');
Graph is the following:
python pandas matplotlib
add a comment |
New to pandas/python and trying to figure out how to get a repeating line throughout all of my graphs to pin point and exact location, my code is working and I have the line showing for one therefore I would imagine I need to loop through all of them, but I simply don't know how to do it.
Code is following:
crimeDataBelfastMonthByType = crimeData[['Ward Name','Month']]
crimeDataBelfastMonthByType = pd.DataFrame({'count' : crimeDataBelfastMonthByType.groupby([ "Ward Name", "Month"] ).size()}).reset_index()
fig3 = pd.pivot_table(crimeDataBelfastMonthByType, values='count', index=['Month'], columns=['Ward Name'], fill_value=0)
fig3.index = pd.DatetimeIndex(fig2.index)
fig3.plot(figsize=(30, 30), subplots=True, layout=(-1, 6), sharex=False, sharey=False);
plt.axvline(x = ['2016-01'], color='red',linestyle='--');
Graph is the following:
python pandas matplotlib
New to pandas/python and trying to figure out how to get a repeating line throughout all of my graphs to pin point and exact location, my code is working and I have the line showing for one therefore I would imagine I need to loop through all of them, but I simply don't know how to do it.
Code is following:
crimeDataBelfastMonthByType = crimeData[['Ward Name','Month']]
crimeDataBelfastMonthByType = pd.DataFrame({'count' : crimeDataBelfastMonthByType.groupby([ "Ward Name", "Month"] ).size()}).reset_index()
fig3 = pd.pivot_table(crimeDataBelfastMonthByType, values='count', index=['Month'], columns=['Ward Name'], fill_value=0)
fig3.index = pd.DatetimeIndex(fig2.index)
fig3.plot(figsize=(30, 30), subplots=True, layout=(-1, 6), sharex=False, sharey=False);
plt.axvline(x = ['2016-01'], color='red',linestyle='--');
Graph is the following:
python pandas matplotlib
python pandas matplotlib
edited Nov 23 '18 at 13:36
Mr. T
4,22391636
4,22391636
asked Nov 23 '18 at 13:26
Stuart AllenStuart Allen
132
132
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The DataFrame.plot()
method returns as its first argument a numpy array of all the matplotlib subplot axes in the resulting figure.
Solution: save the axis array, loop through it, and call ax.axvline()
on each subplot.
# Unchanged lines from your example
crimeDataBelfastMonthByType = crimeData[['Ward Name','Month']]
crimeDataBelfastMonthByType = pd.DataFrame({'count' : crimeDataBelfastMonthByType.groupby([ "Ward Name", "Month"] ).size()}).reset_index()
fig3 = pd.pivot_table(crimeDataBelfastMonthByType, values='count', index=['Month'], columns=['Ward Name'], fill_value=0)
fig3.index = pd.DatetimeIndex(fig2.index)
# Modified lines below
axarr = fig3.plot(figsize=(30, 30), subplots=True, layout=(-1, 6), sharex=False, sharey=False);
for ax in axarr.flat:
ax.axvline(x = ['2016-01'], color='red',linestyle='--');
Hey there, thank you so much for replying but I still seem to be getting an error: AttributeError: 'numpy.ndarray' object has no attribute 'axvline'
– Stuart Allen
Nov 23 '18 at 14:02
1
You need to flattenaxarr
, i.e.for ax in axarr.flat:
– DavidG
Nov 23 '18 at 14:06
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53447579%2fpandas-how-to-repeat-axvline-through-each-graph%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The DataFrame.plot()
method returns as its first argument a numpy array of all the matplotlib subplot axes in the resulting figure.
Solution: save the axis array, loop through it, and call ax.axvline()
on each subplot.
# Unchanged lines from your example
crimeDataBelfastMonthByType = crimeData[['Ward Name','Month']]
crimeDataBelfastMonthByType = pd.DataFrame({'count' : crimeDataBelfastMonthByType.groupby([ "Ward Name", "Month"] ).size()}).reset_index()
fig3 = pd.pivot_table(crimeDataBelfastMonthByType, values='count', index=['Month'], columns=['Ward Name'], fill_value=0)
fig3.index = pd.DatetimeIndex(fig2.index)
# Modified lines below
axarr = fig3.plot(figsize=(30, 30), subplots=True, layout=(-1, 6), sharex=False, sharey=False);
for ax in axarr.flat:
ax.axvline(x = ['2016-01'], color='red',linestyle='--');
Hey there, thank you so much for replying but I still seem to be getting an error: AttributeError: 'numpy.ndarray' object has no attribute 'axvline'
– Stuart Allen
Nov 23 '18 at 14:02
1
You need to flattenaxarr
, i.e.for ax in axarr.flat:
– DavidG
Nov 23 '18 at 14:06
add a comment |
The DataFrame.plot()
method returns as its first argument a numpy array of all the matplotlib subplot axes in the resulting figure.
Solution: save the axis array, loop through it, and call ax.axvline()
on each subplot.
# Unchanged lines from your example
crimeDataBelfastMonthByType = crimeData[['Ward Name','Month']]
crimeDataBelfastMonthByType = pd.DataFrame({'count' : crimeDataBelfastMonthByType.groupby([ "Ward Name", "Month"] ).size()}).reset_index()
fig3 = pd.pivot_table(crimeDataBelfastMonthByType, values='count', index=['Month'], columns=['Ward Name'], fill_value=0)
fig3.index = pd.DatetimeIndex(fig2.index)
# Modified lines below
axarr = fig3.plot(figsize=(30, 30), subplots=True, layout=(-1, 6), sharex=False, sharey=False);
for ax in axarr.flat:
ax.axvline(x = ['2016-01'], color='red',linestyle='--');
Hey there, thank you so much for replying but I still seem to be getting an error: AttributeError: 'numpy.ndarray' object has no attribute 'axvline'
– Stuart Allen
Nov 23 '18 at 14:02
1
You need to flattenaxarr
, i.e.for ax in axarr.flat:
– DavidG
Nov 23 '18 at 14:06
add a comment |
The DataFrame.plot()
method returns as its first argument a numpy array of all the matplotlib subplot axes in the resulting figure.
Solution: save the axis array, loop through it, and call ax.axvline()
on each subplot.
# Unchanged lines from your example
crimeDataBelfastMonthByType = crimeData[['Ward Name','Month']]
crimeDataBelfastMonthByType = pd.DataFrame({'count' : crimeDataBelfastMonthByType.groupby([ "Ward Name", "Month"] ).size()}).reset_index()
fig3 = pd.pivot_table(crimeDataBelfastMonthByType, values='count', index=['Month'], columns=['Ward Name'], fill_value=0)
fig3.index = pd.DatetimeIndex(fig2.index)
# Modified lines below
axarr = fig3.plot(figsize=(30, 30), subplots=True, layout=(-1, 6), sharex=False, sharey=False);
for ax in axarr.flat:
ax.axvline(x = ['2016-01'], color='red',linestyle='--');
The DataFrame.plot()
method returns as its first argument a numpy array of all the matplotlib subplot axes in the resulting figure.
Solution: save the axis array, loop through it, and call ax.axvline()
on each subplot.
# Unchanged lines from your example
crimeDataBelfastMonthByType = crimeData[['Ward Name','Month']]
crimeDataBelfastMonthByType = pd.DataFrame({'count' : crimeDataBelfastMonthByType.groupby([ "Ward Name", "Month"] ).size()}).reset_index()
fig3 = pd.pivot_table(crimeDataBelfastMonthByType, values='count', index=['Month'], columns=['Ward Name'], fill_value=0)
fig3.index = pd.DatetimeIndex(fig2.index)
# Modified lines below
axarr = fig3.plot(figsize=(30, 30), subplots=True, layout=(-1, 6), sharex=False, sharey=False);
for ax in axarr.flat:
ax.axvline(x = ['2016-01'], color='red',linestyle='--');
edited Nov 23 '18 at 14:17
DavidG
11.5k103544
11.5k103544
answered Nov 23 '18 at 13:54
Peter LeimbiglerPeter Leimbigler
4,7781416
4,7781416
Hey there, thank you so much for replying but I still seem to be getting an error: AttributeError: 'numpy.ndarray' object has no attribute 'axvline'
– Stuart Allen
Nov 23 '18 at 14:02
1
You need to flattenaxarr
, i.e.for ax in axarr.flat:
– DavidG
Nov 23 '18 at 14:06
add a comment |
Hey there, thank you so much for replying but I still seem to be getting an error: AttributeError: 'numpy.ndarray' object has no attribute 'axvline'
– Stuart Allen
Nov 23 '18 at 14:02
1
You need to flattenaxarr
, i.e.for ax in axarr.flat:
– DavidG
Nov 23 '18 at 14:06
Hey there, thank you so much for replying but I still seem to be getting an error: AttributeError: 'numpy.ndarray' object has no attribute 'axvline'
– Stuart Allen
Nov 23 '18 at 14:02
Hey there, thank you so much for replying but I still seem to be getting an error: AttributeError: 'numpy.ndarray' object has no attribute 'axvline'
– Stuart Allen
Nov 23 '18 at 14:02
1
1
You need to flatten
axarr
, i.e. for ax in axarr.flat:
– DavidG
Nov 23 '18 at 14:06
You need to flatten
axarr
, i.e. for ax in axarr.flat:
– DavidG
Nov 23 '18 at 14:06
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53447579%2fpandas-how-to-repeat-axvline-through-each-graph%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown