How do I plot my histogram for density rather than count? (Matplotlib)How do you change the size of figures drawn with matplotlib?How can I count the occurrences of a list item?How to plot two histograms together in R?How to put the legend out of the plotSave plot to image file instead of displaying it using MatplotlibHow to make IPython notebook matplotlib plot inlineCreating a matplotlib or seaborn histogram which uses percent rather than count?tableau density plot histogram without using RVariable Matplotlib Histogram Bin WidthHow to plot percent of 'y' against histogram of 'x'?

voltage of sounds of mp3files

Personal Teleportation as a Weapon

Is there a problem with hiding "forgot password" until it's needed?

Why is delta-v is the most useful quantity for planning space travel?

Displaying the order of the columns of a table

Is a roofing delivery truck likely to crack my driveway slab?

Can I Retrieve Email Addresses from BCC?

I'm in charge of equipment buying but no one's ever happy with what I choose. How to fix this?

Trouble understanding overseas colleagues

What is the oldest known work of fiction?

What is the opposite of 'gravitas'?

when is out of tune ok?

At which point does a character regain all their Hit Dice?

What is the intuitive meaning of having a linear relationship between the logs of two variables?

Valid Badminton Score?

Print name if parameter passed to function

Have I saved too much for retirement so far?

Will it be accepted, if there is no ''Main Character" stereotype?

Can somebody explain Brexit in a few child-proof sentences?

Increase performance creating Mandelbrot set in python

Failed to fetch jessie backports repository

Teaching indefinite integrals that require special-casing

How does it work when somebody invests in my business?

Why Were Madagascar and New Zealand Discovered So Late?



How do I plot my histogram for density rather than count? (Matplotlib)


How do you change the size of figures drawn with matplotlib?How can I count the occurrences of a list item?How to plot two histograms together in R?How to put the legend out of the plotSave plot to image file instead of displaying it using MatplotlibHow to make IPython notebook matplotlib plot inlineCreating a matplotlib or seaborn histogram which uses percent rather than count?tableau density plot histogram without using RVariable Matplotlib Histogram Bin WidthHow to plot percent of 'y' against histogram of 'x'?













0















I have a data frame called 'train' with a column 'string' and a column 'string length' and a column 'rank' which has ranking ranging from 0-4.



I want to create a histogram of the string length for each ranking and plot all of the histograms on one graph to compare. I am experiencing two issues with this:



The only way I can manage to do this is by creating separate datasets e.g. with the following type of code:



S0 = train.loc[train['rank'] == 0]
S1 = train.loc[train['rank'] == 1]


Then I create individual histograms for each dataset using:



plt.hist(train['string length'], bins = 100)
plt.show()


This code doesn't plot the density but instead plots the counts. How do I alter my code such that it plots density instead?



Is there also a way to do this without having to create separate datasets? I was told that my method is 'unpythonic'










share|improve this question






















  • Please read How to create a Minimal, Complete, and Verifiable example

    – Bazingaa
    Mar 21 at 15:27











  • Do you feel that I am missing any relevant information that needs to be added to my question?

    – summer_ZUGG
    Mar 21 at 15:31











  • An ideal question is where the code can simply be copied to reproduce the problem. Your question lacks the dataset and the minimal code to do so. If one wants to play with the code, one can't

    – Bazingaa
    Mar 21 at 15:32












  • Thanks for clarifying, I will edit my question accordingly

    – summer_ZUGG
    Mar 21 at 15:35











  • Does adding the density=True keyword not do what you want?

    – Ed Smith
    Mar 21 at 15:38















0















I have a data frame called 'train' with a column 'string' and a column 'string length' and a column 'rank' which has ranking ranging from 0-4.



I want to create a histogram of the string length for each ranking and plot all of the histograms on one graph to compare. I am experiencing two issues with this:



The only way I can manage to do this is by creating separate datasets e.g. with the following type of code:



S0 = train.loc[train['rank'] == 0]
S1 = train.loc[train['rank'] == 1]


Then I create individual histograms for each dataset using:



plt.hist(train['string length'], bins = 100)
plt.show()


This code doesn't plot the density but instead plots the counts. How do I alter my code such that it plots density instead?



Is there also a way to do this without having to create separate datasets? I was told that my method is 'unpythonic'










share|improve this question






















  • Please read How to create a Minimal, Complete, and Verifiable example

    – Bazingaa
    Mar 21 at 15:27











  • Do you feel that I am missing any relevant information that needs to be added to my question?

    – summer_ZUGG
    Mar 21 at 15:31











  • An ideal question is where the code can simply be copied to reproduce the problem. Your question lacks the dataset and the minimal code to do so. If one wants to play with the code, one can't

    – Bazingaa
    Mar 21 at 15:32












  • Thanks for clarifying, I will edit my question accordingly

    – summer_ZUGG
    Mar 21 at 15:35











  • Does adding the density=True keyword not do what you want?

    – Ed Smith
    Mar 21 at 15:38













0












0








0








I have a data frame called 'train' with a column 'string' and a column 'string length' and a column 'rank' which has ranking ranging from 0-4.



I want to create a histogram of the string length for each ranking and plot all of the histograms on one graph to compare. I am experiencing two issues with this:



The only way I can manage to do this is by creating separate datasets e.g. with the following type of code:



S0 = train.loc[train['rank'] == 0]
S1 = train.loc[train['rank'] == 1]


Then I create individual histograms for each dataset using:



plt.hist(train['string length'], bins = 100)
plt.show()


This code doesn't plot the density but instead plots the counts. How do I alter my code such that it plots density instead?



Is there also a way to do this without having to create separate datasets? I was told that my method is 'unpythonic'










share|improve this question














I have a data frame called 'train' with a column 'string' and a column 'string length' and a column 'rank' which has ranking ranging from 0-4.



I want to create a histogram of the string length for each ranking and plot all of the histograms on one graph to compare. I am experiencing two issues with this:



The only way I can manage to do this is by creating separate datasets e.g. with the following type of code:



S0 = train.loc[train['rank'] == 0]
S1 = train.loc[train['rank'] == 1]


Then I create individual histograms for each dataset using:



plt.hist(train['string length'], bins = 100)
plt.show()


This code doesn't plot the density but instead plots the counts. How do I alter my code such that it plots density instead?



Is there also a way to do this without having to create separate datasets? I was told that my method is 'unpythonic'







python pandas matplotlib statistics histogram






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 21 at 15:23









summer_ZUGGsummer_ZUGG

82




82












  • Please read How to create a Minimal, Complete, and Verifiable example

    – Bazingaa
    Mar 21 at 15:27











  • Do you feel that I am missing any relevant information that needs to be added to my question?

    – summer_ZUGG
    Mar 21 at 15:31











  • An ideal question is where the code can simply be copied to reproduce the problem. Your question lacks the dataset and the minimal code to do so. If one wants to play with the code, one can't

    – Bazingaa
    Mar 21 at 15:32












  • Thanks for clarifying, I will edit my question accordingly

    – summer_ZUGG
    Mar 21 at 15:35











  • Does adding the density=True keyword not do what you want?

    – Ed Smith
    Mar 21 at 15:38

















  • Please read How to create a Minimal, Complete, and Verifiable example

    – Bazingaa
    Mar 21 at 15:27











  • Do you feel that I am missing any relevant information that needs to be added to my question?

    – summer_ZUGG
    Mar 21 at 15:31











  • An ideal question is where the code can simply be copied to reproduce the problem. Your question lacks the dataset and the minimal code to do so. If one wants to play with the code, one can't

    – Bazingaa
    Mar 21 at 15:32












  • Thanks for clarifying, I will edit my question accordingly

    – summer_ZUGG
    Mar 21 at 15:35











  • Does adding the density=True keyword not do what you want?

    – Ed Smith
    Mar 21 at 15:38
















Please read How to create a Minimal, Complete, and Verifiable example

– Bazingaa
Mar 21 at 15:27





Please read How to create a Minimal, Complete, and Verifiable example

– Bazingaa
Mar 21 at 15:27













Do you feel that I am missing any relevant information that needs to be added to my question?

– summer_ZUGG
Mar 21 at 15:31





Do you feel that I am missing any relevant information that needs to be added to my question?

– summer_ZUGG
Mar 21 at 15:31













An ideal question is where the code can simply be copied to reproduce the problem. Your question lacks the dataset and the minimal code to do so. If one wants to play with the code, one can't

– Bazingaa
Mar 21 at 15:32






An ideal question is where the code can simply be copied to reproduce the problem. Your question lacks the dataset and the minimal code to do so. If one wants to play with the code, one can't

– Bazingaa
Mar 21 at 15:32














Thanks for clarifying, I will edit my question accordingly

– summer_ZUGG
Mar 21 at 15:35





Thanks for clarifying, I will edit my question accordingly

– summer_ZUGG
Mar 21 at 15:35













Does adding the density=True keyword not do what you want?

– Ed Smith
Mar 21 at 15:38





Does adding the density=True keyword not do what you want?

– Ed Smith
Mar 21 at 15:38












1 Answer
1






active

oldest

votes


















0














You could do something like:



df.loc[:, df.columns != 'string'].groupby('rank').hist(density=True, bins =10, figsize=(5,5))


Basically, what it does is select all columns except string, group them by rank and make an histogram of all them following the arguments.



The density argument set to density=True draws it in a normalized manner, as



Hope this has helped.



EDIT:



f there are more variables and you want the histograms overlapped, try:



df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))





share|improve this answer










New contributor




BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1





    Hi, thank you for your answer. I tried this method but this seems to be giving me a histogram for every column in my data rather than a histogram for every rank. It is also plotting the histograms on separate graphs rather than overlapping them.

    – summer_ZUGG
    Mar 21 at 15:54











  • My apologies. If there are more variables and you want the histograms overlapped, try: df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))

    – BCJuan
    Mar 21 at 16:39












  • I have added it as an edit of the main answer so everyone can see it.

    – BCJuan
    Mar 21 at 17:06











  • Thank you so much for this! Very helpful :)

    – summer_ZUGG
    Mar 21 at 17:16










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
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55283837%2fhow-do-i-plot-my-histogram-for-density-rather-than-count-matplotlib%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









0














You could do something like:



df.loc[:, df.columns != 'string'].groupby('rank').hist(density=True, bins =10, figsize=(5,5))


Basically, what it does is select all columns except string, group them by rank and make an histogram of all them following the arguments.



The density argument set to density=True draws it in a normalized manner, as



Hope this has helped.



EDIT:



f there are more variables and you want the histograms overlapped, try:



df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))





share|improve this answer










New contributor




BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1





    Hi, thank you for your answer. I tried this method but this seems to be giving me a histogram for every column in my data rather than a histogram for every rank. It is also plotting the histograms on separate graphs rather than overlapping them.

    – summer_ZUGG
    Mar 21 at 15:54











  • My apologies. If there are more variables and you want the histograms overlapped, try: df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))

    – BCJuan
    Mar 21 at 16:39












  • I have added it as an edit of the main answer so everyone can see it.

    – BCJuan
    Mar 21 at 17:06











  • Thank you so much for this! Very helpful :)

    – summer_ZUGG
    Mar 21 at 17:16















0














You could do something like:



df.loc[:, df.columns != 'string'].groupby('rank').hist(density=True, bins =10, figsize=(5,5))


Basically, what it does is select all columns except string, group them by rank and make an histogram of all them following the arguments.



The density argument set to density=True draws it in a normalized manner, as



Hope this has helped.



EDIT:



f there are more variables and you want the histograms overlapped, try:



df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))





share|improve this answer










New contributor




BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1





    Hi, thank you for your answer. I tried this method but this seems to be giving me a histogram for every column in my data rather than a histogram for every rank. It is also plotting the histograms on separate graphs rather than overlapping them.

    – summer_ZUGG
    Mar 21 at 15:54











  • My apologies. If there are more variables and you want the histograms overlapped, try: df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))

    – BCJuan
    Mar 21 at 16:39












  • I have added it as an edit of the main answer so everyone can see it.

    – BCJuan
    Mar 21 at 17:06











  • Thank you so much for this! Very helpful :)

    – summer_ZUGG
    Mar 21 at 17:16













0












0








0







You could do something like:



df.loc[:, df.columns != 'string'].groupby('rank').hist(density=True, bins =10, figsize=(5,5))


Basically, what it does is select all columns except string, group them by rank and make an histogram of all them following the arguments.



The density argument set to density=True draws it in a normalized manner, as



Hope this has helped.



EDIT:



f there are more variables and you want the histograms overlapped, try:



df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))





share|improve this answer










New contributor




BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.










You could do something like:



df.loc[:, df.columns != 'string'].groupby('rank').hist(density=True, bins =10, figsize=(5,5))


Basically, what it does is select all columns except string, group them by rank and make an histogram of all them following the arguments.



The density argument set to density=True draws it in a normalized manner, as



Hope this has helped.



EDIT:



f there are more variables and you want the histograms overlapped, try:



df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))






share|improve this answer










New contributor




BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this answer



share|improve this answer








edited Mar 21 at 17:07





















New contributor




BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









answered Mar 21 at 15:43









BCJuanBCJuan

313




313




New contributor




BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 1





    Hi, thank you for your answer. I tried this method but this seems to be giving me a histogram for every column in my data rather than a histogram for every rank. It is also plotting the histograms on separate graphs rather than overlapping them.

    – summer_ZUGG
    Mar 21 at 15:54











  • My apologies. If there are more variables and you want the histograms overlapped, try: df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))

    – BCJuan
    Mar 21 at 16:39












  • I have added it as an edit of the main answer so everyone can see it.

    – BCJuan
    Mar 21 at 17:06











  • Thank you so much for this! Very helpful :)

    – summer_ZUGG
    Mar 21 at 17:16












  • 1





    Hi, thank you for your answer. I tried this method but this seems to be giving me a histogram for every column in my data rather than a histogram for every rank. It is also plotting the histograms on separate graphs rather than overlapping them.

    – summer_ZUGG
    Mar 21 at 15:54











  • My apologies. If there are more variables and you want the histograms overlapped, try: df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))

    – BCJuan
    Mar 21 at 16:39












  • I have added it as an edit of the main answer so everyone can see it.

    – BCJuan
    Mar 21 at 17:06











  • Thank you so much for this! Very helpful :)

    – summer_ZUGG
    Mar 21 at 17:16







1




1





Hi, thank you for your answer. I tried this method but this seems to be giving me a histogram for every column in my data rather than a histogram for every rank. It is also plotting the histograms on separate graphs rather than overlapping them.

– summer_ZUGG
Mar 21 at 15:54





Hi, thank you for your answer. I tried this method but this seems to be giving me a histogram for every column in my data rather than a histogram for every rank. It is also plotting the histograms on separate graphs rather than overlapping them.

– summer_ZUGG
Mar 21 at 15:54













My apologies. If there are more variables and you want the histograms overlapped, try: df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))

– BCJuan
Mar 21 at 16:39






My apologies. If there are more variables and you want the histograms overlapped, try: df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))

– BCJuan
Mar 21 at 16:39














I have added it as an edit of the main answer so everyone can see it.

– BCJuan
Mar 21 at 17:06





I have added it as an edit of the main answer so everyone can see it.

– BCJuan
Mar 21 at 17:06













Thank you so much for this! Very helpful :)

– summer_ZUGG
Mar 21 at 17:16





Thank you so much for this! Very helpful :)

– summer_ZUGG
Mar 21 at 17:16



















draft saved

draft discarded
















































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.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55283837%2fhow-do-i-plot-my-histogram-for-density-rather-than-count-matplotlib%23new-answer', 'question_page');

);

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







Popular posts from this blog

How to preserve electronics (computers, tablets and phones) for hundreds of years Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) The network's official Twitter account is up and running again. What content…How might modern humans leave a message for 50,000 years?How would an aquatic race develop computers?How do we make computers care for human life?Keeping supplies for 1000 yearsWhat will cell phones become in 100 years?What body armor protects against a laser?Could a society attain 1800s technology if limited to using copper and bronze?Electricity power (magic) and electronicsScavenging metal resources in post-apocalypse after 100 yearsWhy would precursors create devices that can survive and still work after hundreds of years?

155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해

Convert JSON to MapSimplest way to convert a string representing JSON array into Java array List of key value pairsHow to take String JSON values into HashMapConvert a JSON String to a HashMapCreating BSON object from JSON stringJSONObject - How to get a value ?Better Map ConstructorReading JSON from Url javaUpdate columns if input values are not null otherwise ignore and keep the existing values of column in databaseHow to store object represented as Json string into Couchbase Lite?Go JSON into MapHow do I efficiently iterate over each entry in a Java Map?Sort a Map<Key, Value> by valuesHow to round a number to n decimal places in JavaCan comments be used in JSON?How do I read / convert an InputStream into a String in Java?How can I pretty-print JSON in a shell script?What is the correct JSON content type?How can I deserialize JSON to a simple Dictionary<string,string> in ASP.NET?Why does Google prepend while(1); to their JSON responses?Parse JSON in JavaScript?